php防注入代码

关于sql注入是在程序开发中基本的网站安全知识,下面我们讲了php和sql两个防注入的办法,有需要的朋友可以参考一下或自己也可以在这基础上改进,代码如下:

  1. <?php
  2. $magic_quotes_gpc = get_magic_quotes_gpc();
  3. @extract(daddslashes($_COOKIE));
  4. @extract(daddslashes($_POST));
  5. @extract(daddslashes($_GET));
  6. if(!$magic_quotes_gpc) {
  7. $_FILES = daddslashes($_FILES);
  8. }
  9. function daddslashes($string, $force = 0) {
  10. if(!$GLOBALS['magic_quotes_gpc'] || $force) {
  11. if(is_array($string)) {
  12. foreach($string as $key => $val) {
  13. $string[$key] = daddslashes($val, $force);
  14. }
  15. } else {
  16. $string = addslashes($string);
  17. }
  18. }
  19. return $string;
  20. }
  21. ?>

防注入二,代码如下:

  1. function inject_check($sql_str) { //防止注入
  2. $check = eregi('select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile', $sql_str);
  3. if ($check) {
  4. echo "输入非法注入内容!";
  5. exit ();
  6. } else {
  7. return $sql_str;
  8. }
  9. }
  10. function checkurl() { //检查来路
  11. if (preg_replace("/https?://([^:/]+).*/i", "\1", $_SERVER['HTTP_REFERER']) !== preg_replace("/([^:]+).*/", "\1", $_SERVER['HTTP_HOST'])) {
  12. header("Location: http://www.phpfensi.com");
  13. exit();
  14. }
  15. }