PHP における一般的な SQL 攻撃正規表現のまとめ、SQL 正規表現_PHP チュートリアル
PHPにおける一般的なSQL攻撃正規表現、SQL正規表現のまとめ
この記事の例では、PHP での一般的な SQL 攻撃の正規表現について説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:
MYSQL 5 以降では、information_schema ライブラリにすべてのライブラリ名、指示、およびフィールド名の情報が格納されることはすでにご存知です。したがって、攻撃方法は次のとおりです。
1. 最初のテーブル名の最初の文字が a ~ z の文字であるかどうかを確認します。ここで、blind_sqli は想定される既知のライブラリ名です。
注: 正規表現の ^[a-z] は、文字列の開始文字が a-z の範囲内にあることを意味します
2. 最初の文字が a-n の文字であるかどうかを判断します
3. キャラクターがnであることを確認します
4. 式は以下のように置き換えられます
例:
コードをコピーします
$SQL_Injection = "( s|S)*((%27)|(')|(%3D)|(=)|(/)|(%2F)|(")|((%22)|(- |%2D){2})|(%23)|(%3B)|(;))+(s|S)*";
SQL攻撃コード:
コードをコピーします
{
echo "エラー番号: [$errno],$errfile の $errline 行目のエラー
";
死ぬ();
}
set_error_handler("カスタムエラー",E_ERROR);
$getfilter="'|(and|or)b.+?(>|<|=|in|like)|/*.+?*/|
{
if(is_array($StrFiltValue))
{
$StrFiltValue=implode($StrFiltValue);
}
if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue)==1&&!isset($_REQUEST['securityToken']))
{
slog("
gt;
操作IP: ".$_SERVER["REMOTE_ADDR"]."
操作時間: ".strftime("%Y-%m-%d %H:%M :%S")."
操作面:".$_SERVER["PHP_SELF"]."
提交方法: ".$_SERVER["REQUEST_METHOD"]."
提交パラメータ: ".$StrFiltKey."
提交データ: ".$StrFiltValue);
print "結果通知:不正な操作です!";
出口();
}
}
foreach($_GET as $key=>$value)
{
Stop Attack($key,$value,$getfilter);
}
foreach($_POST as $key=>$value)
{
Stop Attack($key,$value,$postfilter);
}
foreach($_COOKIE as $key=>$value)
{
Stop Attack($key,$value,$cookiefilter);
}
関数 slog($logs)
{
$toppath="log.htm";
$Ts=fopen($toppath,"a+");
fputs($Ts,$logs."rn");
fclose($Ts);
}
?>
SQL分析: この関数を使用すると、この関数は PHP の標準的な障害処理を実行し、独自の障害処理プログラム (die()) を取得します。 次に、代コードの実行前にブロック処理が発生した場合には、ユーザが独自に設定したプログラムも実行されないため、ユーザの自筆によるブロック処理プログラムは実行されない。
同様に、PHP には PHP エラー処理機構があり、set_error_handler() を使用して PHP エラー処理を受信したり、trigger_error() 関数を使用して主にエラー メッセージを出力したりすることもできます。
set_error_handler() 関数は、ユーザー独自のエラー処理関数を設定し、実行中のユーザー独自のエラー処理メソッドを設定します。
関連する使用法:
复制代码
代番号如下:
}
set_error_handler("customError",E_ALL| E_STRICT);
まとめ
PHP でエラーが発生すると、エラー スクリプトの場所、行番号、および理由が表示されますが、これは大したことではない、と多くの人が言います。しかし、実際のパスが漏洩した場合の影響は、一部の侵入者にとっては想像を絶するものであり、実際、多くのサーバーがこの問題を抱えています。 ネットワーク管理者の中には、PHP 設定ファイルの display_errors を Off に設定するだけで問題を解決する人もいますが、この方法はあまりにも消極的すぎると思います。場合によっては、デバッグのために PHP がエラー情報を返す必要があることがあります。また、何か問題が発生した場合は、ユーザーに説明したり、別のページに移動したりする必要がある場合もあります。しかし、set_error_handler() を使用すると、これらの矛盾を解決できます。しかし、この機能はほとんど使用されていないことがわかりました。
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
$sql='
存在しない場合はテーブルを作成しますuploadtype(
id int(11) NOT NULL AUTO_INCREMENT,
title varchar(20) DEFAULT '0',
sydefault char(1) DEFAULT '0' ,
PRIMARY KEY (id )
) ENGINE=MyISAM
';
preg_match('#CREATE TABLE.*\(.*\)ENGINE=MyISAM#isU',$sql,$typefile);
var_dump($typefile);
SQL 分類:
DDL—データ定義言語 (CREATE、ALTER、DROP、DECLARE)
DML—データ操作言語 (SELECT、DELETE、UPDATE、INSERT)
DCL—データ制御言語 (GRANT、REVOKE、COMMIT、ROLLBACK)
まず、基本的なステートメントについて簡単に説明します。
1. 説明: データベースを作成します
CREATE DATABASE データベース名
2. 説明: データベースを削除します
データベース dbname を削除します
3. SQL サーバーをバックアップします
---バックアップ データ用のデバイスを作成します
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- バックアップを開始します
BACKUP DATABASE pubs TO testBack
手順: 新しいデバイスを作成します。 table
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
既存のテーブルに基づいて新しいテーブルを作成します:
A: tab_old のようにテーブル tab_new を作成します (古いテーブルを使用します) table を作成して新しいテーブルを作成します)
B: tab_old 定義のみからテーブル tab_new を選択します
5. 説明: 新しいテーブルを削除します。drop table tabname
6. 列を追加します
テーブル tabname を変更して列を追加します。 type
注: 列を追加すると、削除することはできません。 DB2 では、列の追加後にデータ型を変更することはできません。変更できるのは、varchar 型の長さを増やすことだけです。
7. 手順: 主キーを追加: テーブルのタブ名を変更して主キーを追加(列)
手順: 主キーを削除: テーブルのタブ名を変更して主キーを削除
手順: インデックスを作成: タブ名に [一意の] インデックス IDxname を作成します。 (col ….)
インデックスの削除: インデックス idxname を削除します
注: インデックスを変更したい場合は、削除して再構築する必要があります。
9. 手順: ビューを作成します: select ステートメントとしてビュー viewname を作成します
ビューを削除します: ビュー viewname を削除します
10. 手順: いくつかの簡単な基本 SQL ステートメント
Select: select * from table1 where range
Insert: insert into table1( field1,field2)values(value1,value2)
削除: table1 から削除 where range
Update: table1 を更新 set field1=value1 where range
Search: select * from table1 where field1 like '%value1%' ---似た構文洗練された情報をチェックしてください!
Sort: select * from table1 order by field1,field2 [desc]
Total: select count(*) as totalcount from table1 from totalcount
Sum: select sum(field1) as sumvalue from table1
Average: select avg (フィールド 1) テーブル 1 の平均値として
最大...残りのテキスト>>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。
