Heim > Backend-Entwicklung > PHP-Tutorial > php防止sql注入的代码

php防止sql注入的代码

WBOY
Freigeben: 2016-07-25 09:03:44
Original
1067 Leute haben es durchsucht
  1. /*************************

  2. 说明:
  3. 判断传递的变量中是否含有非法字符
  4. 如$_POST、$_GET
  5. 功能:防注入
  6. **************************/
  7. //要过滤的非法字符

  8. $ArrFiltrate=array("'",";","union");
  9. //出错后要跳转的url,不填则默认前一页
  10. $StrGoUrl="";
  11. //是否存在数组中的值
  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,然后在每个php文件前加include(“checkpostandget.php“);即可。

方法二

  1. /* 过滤所有GET过来变量 */

  2. foreach ($_GET as $get_key=>$get_var)
  3. {
  4. if (is_numeric($get_var)) {
  5. $get[strtolower($get_key)] = get_int($get_var);
  6. } else {
  7. $get[strtolower($get_key)] = get_str($get_var);
  8. }
  9. }
  10. /* 过滤所有POST过来的变量 */

  11. foreach ($_POST as $post_key=>$post_var)
  12. {
  13. if (is_numeric($post_var)) {
  14. $post[strtolower($post_key)] = get_int($post_var);
  15. } else {
  16. $post[strtolower($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. return addslashes($string);
  30. }
  31. return $string;
  32. }
  33. ?>
复制代码


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage