$magic_quotes_gpc = get_magic_quotes_gpc();
- @extract(daddslashes($_POST)); ;
- if(!$magic_quotes_gpc) {
- $_FILES = ダッズラッシュ($_FILES);
- }
関数 ダッズラッシュ($string, $force = 0) {
- if(!$GLOBALS[' magic_quotes_gpc'] || $force) {
- if(is_array($string)) {
- foreach($string as $key => $val) {
- $string[$key] = godslashes($val, $force) ;
- }
- } else {
- $string =addlashes($string);
- }
- }
- return $string;
-
-
-
- 以下のコードを拡張して保護できますサーバーのセキュリティにとって、PHP が SQL インジェクションのセキュリティ機能を防ぐことは非常に重要です。
-
-
/* 関数名: inject_check() 関数関数: 送信された値に SQL インジェクション文字が含まれているかどうかを検出し、インジェクションを防止し、サーバーのセキュリティを保護します パラメーター: $sql_str: 送信された変数 bbs .it-home.org 戻り値: 検出結果、true または false を返します */ - function inject_check($sql_str) {
- return eregi('select|insert|and|or|update|delete|'|/ *| *|../|./|union|into|load_file|outfile', $sql_str); // フィルター
- }
/*
- 関数名: verify_id()
- 関数: Verify送信されたID値が正当かどうか
- パラメータ: $id: 送信されたID値
- 戻り値: 処理されたIDを返す
- */
- function verify_id($id=null) {
- if (!$id ) { exit('パラメータなしsubmit!'); } // 空かどうかの判定
- elseif (inject_check($id)) { exit('提出されたパラメータが不正です!') } // インジェクションの判定
- elseif (!is_numeric ($id); )) { exit('送信されたパラメータは不正です!'); } // 数値判定
- $id = intval($id); // 整数化return $id
- }< /p>
/*
- 関数名: str_check()
- 関数関数: 送信された文字列をフィルタリングする
- パラメータ: $var: 処理する文字列
- 戻り値: フィルタに戻る
- */
- の後の文字列function str_check( $str ) {
- if (!get_magic_quotes_gpc()) { // magic_quotes_gpc がオンになっているかどうかを判断します
- $str = addedlashes($str); // フィルター
- }
- $str = str_replace("_", " _", $str); // '_' を除外します
- $str = str_replace("%", "%", $str); // '%' を除外します< /p>
return $str;
- }
/*
- 関数名: post_check()
- 関数関数: 投稿された編集内容を処理する
- パラメータ: $post: 投稿するコンテンツ
- 戻り値: $post:フィルターされたコンテンツを返します
- */
- function post_check($post) {
- if (!get_magic_quotes_gpc()) { // magic_quotes_gpc が開いているかどうかを判断します
- $post = addlashes($ post) // magic_quotes_gpc が開いていない場合に送信されたデータをフィルターします。オンにしました
- }
- $post = str_replace("_", "_", $post); // '_' を除外します
- $post = str_replace( "%", "%", $post); out '%'
- $post = nl2br($post); // 変換を入力
- $post = htmlspecialchars($post); // HTML タグの変換
- ;
これを共通の呼び出しファイル (conn データベース リンク ファイルなど) に配置し、すべての GET または POST データを特別な文字列でフィルタリングして、シンプルで効果的な SQL インジェクション フィルタリングを実現します。
コード:
-
-
-
-
-
-
- Function inject_check($sql_str) {
- return eregi('select|insert|and|or|update|delete|'|/*|*|../|./|union |into|load_file|outfile', $sql_str);
- }
- if (inject_check($_SERVER['QUERY_STRING'])==1 または inject_check(file_get_contents("php://input"))==1){
- //echo "不正アクセス警告!";
header("Location: Error.php"); }
コードをコピー
|