これは、PHP と SQL を組み合わせた包括的なアンチインジェクション プログラムです。PHP では主に get、post、cooke、file をフィルタリングし、SQL では削除および更新のクエリ コマンドを検出およびフィルタリングします。
SQLインジェクション攻撃の一般的な考え方
· SQL インジェクションの場所を検出します。
·バックグラウンドデータベースのタイプを決定します。
·XP_CMDSHELLの実行可能性を判断する
·WEB仮想ディレクトリを発見する
·ASP、php、jsp トロイの木馬をアップロードします。
·管理者権限を取得します;
//PHP サイト全体のアンチインジェクション プログラム、このファイルをパブリック ファイルに require_once する必要があります
//magic_quotes_gpc ステータスを決定します
if (@get_magic_quotes_gpc ()) { | |||||||||
// 配列の場合は、配列を走査して再帰的に呼び出します if (is_array ( $array )) { foreach ( $array as $k => $v ) { $array [$k] = 秒 ( $v ); } } else if (is_string ( $array )) { //addslashes関数を使って処理します $array = ラッシュを追加します ( $array ); } else if (is_numeric ( $array )) { $array = 整数 ( $array ); } $配列を返す } 1.整数パラメータの判定 入力パラメータ YY が整数の場合、通常、abc.asp 内の元の SQL ステートメントはおおよそ次のようになります: select * from table name where field=YY なので、次の手順を使用して SQL インジェクションが存在するかどうかをテストできます。 ①HTTP://xxx.xxx.xxx/abc.asp?p=YY’(シングルクォーテーション付き) このとき、abc.ASP内のSQL文は となります。 select * from table name where field=YY’、abc.asp が異常実行します ②HTTP://xxx.xxx.xxx/abc.asp?p=YY かつ 1=1 の場合、abc.asp は正常に実行され、結果は HTTP://xxx.xxx.xxx/abc.asp?p と同じになります。 =YY ; ③HTTP://xxx.xxx.xxx/abc.asp?p=YY で 1=2、abc.asp が異常動作します。 上記の 3 つの手順が完全に満たされている場合は、abc.asp に SQL インジェクションの脆弱性が存在するはずです。 上記に基づいて、整数フィルター関数を作成します コードは次のとおりです
die ( 'パラメータを空にすることはできません!' ); } //空かどうかを判断する else if (inject_check ( $id )) {
www.bkjia.com
前の記事:php SQL インジェクションと anti-injection_PHP チュートリアルの古典的なケース分析
次の記事:php intval() 10 進数のセキュリティ脆弱性分析_PHP チュートリアル
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
URL パラメータから取得した PHP 配列が期待どおりに動作しない
カテゴリ ID を含む URL パラメータがあり、それを次のような配列として扱いたいと考えています: http://example.com?cat[]=3,9,13 PHP では、...
から 2024-04-06 22:09:02
0
1
1428
width プロパティを追加してコンテンツを左に移動します。
ボディに余白を設けました。 main {left margin: 200px; right margin: 200px; textalignment: center} テキストを1...
から 2024-04-06 22:01:35
0
3
816
戻り値の変数の形式は何ですか?
私はphpの初心者です。コードを見つけました: if($x<time()){return[false,'error'];} ロジックや変数は重要ではありませんが、[false...
から 2024-04-06 21:55:20
0
1
778
ページが突然 CSS またはブートストラップを取得できなくなります
それで、私はページを開発しています。昨日その一部を実行してうまくいきました。そして今日は残りの作業を続けましたが、すべてがうまくいきました。通常の HTML ページとして開こうとす...
から 2024-04-06 21:58:04
0
1
800
関連トピック
詳細>
|