ホームページ  >  記事  >  バックエンド開発  >  SQLインジェクションを防ぐPHPコード

SQLインジェクションを防ぐPHPコード

WBOY
WBOYオリジナル
2016-07-25 09:03:441053ブラウズ
  1. /****************************

  2. 説明:
  3. 渡された変数に不正な文字が含まれているかどうかを判断します
  4. $_POST、$_GET など
  5. 機能: アンチ注射
  6. * *************************/

  7. //フィルタリングされる不正な文字

  8. $ArrFiltrate=array("'", ";","union");
  9. //エラー発生後にジャンプする URL。入力しない場合は、前のページがデフォルトになります
  10. $StrGoUrl="";
  11. //に値があるかどうか。 array
  12. function FunStringExist($StrFiltrate, $ArrFiltrate){
  13. foreach ($ArrFiltrate as $key=>$value){
  14. if (eregi($value,$StrFiltrate)){
  15. return true;
  16. }
  17. }
  18. return false;
  19. }
  20. // $_POST と $_GET をマージします

  21. if(function_exists(array_merge)){
  22. $ArrPostAndGet=array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);
  23. }else{
  24. foreach ($HTTP_POST_VARS as $key=>$value){
  25. $ArrPostAndGet[]=$value;
  26. }
  27. foreach($HTTP_GET_VARS as $key=>$value){
  28. $ArrPostAndGet[]=$value;
  29. }
  30. }

  31. //検証開始

  32. foreach($ArrPostAndGet as $key=>$value){
  33. if (FunStringExist($value,$ArrFiltrate)){
  34. echo "";
  35. if (emptyempty($StrGoUrl)){
  36. echo " ";
  37. }else{
  38. echo "";
  39. }
  40. exit;
  41. }
  42. }
  43. ? >
コード

をコピーし、checkpostandget.php として保存し、それぞれの前に include("checkpostandget.php") を追加します。 php ファイル。

方法 2

  1. /* すべての GET 変数をフィルター*/

  2. foreach ($_GET as $get_key=>$get_var)
  3. {
  4. if (is_numeric($get_var)) {
  5. $get[strto lower($get_key)] = get_int($get_var);
  6. } else {
  7. $get[strto lower($get_key)] = get_str($get_var);
  8. }
  9. }

  10. < ; p>/* すべての POST 変数をフィルターします*/
  11. foreach ($_POST as $post_key=>$post_var)
  12. {
  13. if (is_numeric($post_var)) {
  14. $post[strto lower($post_key)] = get_int($ post_var);
  15. } else {
  16. $post[strto lower($post_key)] = get_str($post_var);
  17. }
  18. }

  19. /* フィルター関数*/

  20. // 整数フィルター関数
  21. function get_int($number)
  22. {
  23. return intval($number);
  24. }
  25. //文字列フィルター関数
  26. function get_str($string)
  27. {
  28. if (!get_magic_quotes_gpc()) {
  29. returnaddslashes($string) ;
  30. }
  31. return $string;
  32. }
  33. ?>

コードをコピー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。