搜索
首页PHP 库Other libraries防SQL注入的php类库
防SQL注入的php类库
<?php
class sqlsafe {
  private $getfilter = "'|(and|or)\b.+?(>|<|=|in|like)|\/\*.+?\*\/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)";
  private $postfilter = "\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|\/\*.+?\*\/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)";
  private $cookiefilter = "\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|\/\*.+?\*\/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)";
  public function __construct() {
    foreach($_GET as $key=>$value){$this->stopattack($key,$value,$this->getfilter);}
    foreach($_POST as $key=>$value){$this->stopattack($key,$value,$this->postfilter);}
    foreach($_COOKIE as $key=>$value){$this->stopattack($key,$value,$this->cookiefilter);}
  }
  public function stopattack($StrFiltKey, $StrFiltValue, $ArrFiltReq){
    if(is_array($StrFiltValue))$StrFiltValue = implode($StrFiltValue);
    if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue) == 1){
      $this->writeslog($_SERVER["REMOTE_ADDR"]."    ".strftime("%Y-%m-%d %H:%M:%S")."    ".$_SERVER["PHP_SELF"]."    ".$_SERVER["REQUEST_METHOD"]."    ".$StrFiltKey."    ".$StrFiltValue);
      showmsg('您提交的参数非法,系统已记录您的本次操作!','',0,1);
    }
  }
  public function writeslog($log){
    $log_path = CACHE_PATH.'logs'.DIRECTORY_SEPARATOR.'sql_log.txt';
    $ts = fopen($log_path,"a+");
    fputs($ts,$log."\r\n");
    fclose($ts);
  }
}

本类库首先构造函数参数,然后检查并写日志最后检查SQL注入日志。是一个很好用的防SQL注入的php类库


免责声明

本站所有资源均由网友贡献或各大下载网站转载。请自行检查软件的完整性!本站所有资源仅供学习参考。请不要将它们用于商业目的。否则,一切后果由您负责!如有侵权,请联系我们删除。联系方式:admin@php.cn

相关文章

Go 的'database/sql”库如何防止 SQL 注入?Go 的'database/sql”库如何防止 SQL 注入?

13Dec2024

在 Go 中使用“database/sql”防范 SQL 注入 在构建 Web 应用程序时,防止 SQL 注入攻击至关重要。经过...

Go的database/sql库如何防止SQL注入攻击?Go的database/sql库如何防止SQL注入攻击?

20Dec2024

使用“database/sql”库防止 Go 中的 SQL 注入攻击在 Web 开发中,SQL 注入攻击带来了显着的安全性......

Go的'database/sql”库如何防止SQL注入攻击?Go的'database/sql”库如何防止SQL注入攻击?

25Dec2024

在 Go 中使用“database/sql”防止 SQL 注入攻击构建 Web 应用程序时,保护输入对于防止恶意攻击至关重要......

php 防sql注入方法php 防sql注入方法

02Nov2020

php防sql注入的方法:1、使用mysql_real_escape_string方法转义SQL语句中使用的字符串中的特殊字符;2、打开magic_quotes_gpc来防止SQL注入;3、通过自定义函数防sql注入。

哪个 PHP 库提供卓越的 SQL 注入防护:PDO 还是 mysql_real_escape_string?哪个 PHP 库提供卓越的 SQL 注入防护:PDO 还是 mysql_real_escape_string?

22Oct2024

PHP 数据对象 (PDO) 为查询转义提供了比 mysql_real_escape_string 更好的替代方案。 PDO 的优点包括数据库独立性、自动转义、参数替换和改进的错误处理,使其成为更加健壮的、e

PHP 中的参数化查询如何防止 MySQL 数据库中的 SQL 注入?PHP 中的参数化查询如何防止 MySQL 数据库中的 SQL 注入?

02Nov2024

PHP 中用于安全 MySQL 连接的参数化查询SQL 注入仍然是一个持续存在的安全威胁,可能会危及...

See all articles