ホームページ > バックエンド開発 > PHPチュートリアル > PHP での SQL インジェクションの防止

PHP での SQL インジェクションの防止

WBOY
リリース: 2016-07-29 08:57:12
オリジナル
907 人が閲覧しました

SQL インジェクションは通常、不規則で緩い文法によって発生します。問題は SQL ステートメントで発生し、決定的なものは quote(') です。以下の通り:
$sql = "delete from table where id ='$id'" ;
正常に送信された場合、送信された ID が (1 ’ または 1 #) の場合、SQL ステートメントは
delete from table where id = '1'or 1 #';
になります。 この場合、テーブル全体が削除され、元に戻せない結果が生じます。
引用時に問題が発生するので、それをエスケープしてください (')

  • phpには、使用する2つの関数が用意されています
<code>addslashes(<span>$str</span>)
<span>//建议使用下面的,可以避免出现字符集问题</span>
mysql_real_escape_string(<span>$str</span>,<span>$link</span>)</code>
ログイン後にコピー
<code><span>//避免整型数据可能不被sql增加引号,强制在转换后的数据使用引号包裹</span><span><span>function</span><span>(<span>$str</span>)</span>{</span><span>return</span><span>"'"</span>.mysql_real_escape_string(<span>$str</span>,<span>$this</span>->link).<span>"'"</span>;
}</code>
ログイン後にコピー
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上、PHP における SQL インジェクションの防止について、その側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート