首页 PHP 库 其它类库 防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

相关文章

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

22 Oct 2024

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

PHP爬虫入门:如何选择合适的类库? PHP爬虫入门:如何选择合适的类库?

09 Aug 2023

PHP爬虫入门:如何选择合适的类库?随着互联网的快速发展,大量的数据散落在各个网站中。为了获取这些数据,我们常常需要使用爬虫来从网页中提取信息。而PHP作为一种常用的网页开发语言,也有许多适用于爬虫的类库可供选择。然而,在选择适合自己项目需求的类库时,我们需要考虑一些关键因素。功能丰富性:不同的爬虫类库提供了不同的功能。有些类库只能用于简单的网页抓取,而有些

Node-MySQL 中的字符串转义如何防止 SQL 注入? Node-MySQL 中的字符串转义如何防止 SQL 注入?

03 Dec 2024

使用字符串转义防止 Node.js 中的 SQL 注入漏洞 SQL 注入是一种常见的攻击类型,可能会危害数据库...

PHP 函数中的 SQL 注入攻击预防指南 PHP 函数中的 SQL 注入攻击预防指南

02 May 2024

PHP函数protect_sql_injection()用于预防SQL注入攻击,它通过以下步骤实现:转义特殊字符。将非ASCII字符转换为HTML实体。这可确保用户提供的输入在执行数据库查询前已安全处理,防止恶意SQL代码注入。

防止sql注入的方法有哪些 防止sql注入的方法有哪些

14 Nov 2023

防止sql注入的方法有使用参数化查询、输入验证和过滤、最小权限原则、使用ORM框架、定期更新和维护数据库等。详细介绍:1、使用参数化查询,参数化查询是最常见也是最有效的防止SQL注入的方法之一,它通过将用户输入的数据作为参数传递给SQL查询语句,而不是将其直接拼接到查询语句中;2、输入验证和过滤,对于用户输入的数据,开发人员应该进行严格的验证和过滤,验证用户输入的数据是否等等。

PHP开发技巧:如何防止SQL注入攻击 PHP开发技巧:如何防止SQL注入攻击

20 Sep 2023

PHP开发技巧:如何防止SQL注入攻击概述:随着互联网的发展,Web应用程序的安全性问题越来越受到关注。其中,SQL注入攻击是一种常见的网络安全威胁。它利用未经过滤的用户输入,修改SQL查询语句的结构,从而获取非法的数据库信息或者修改数据库中的数据。在PHP开发中,我们可以采取一些措施来有效防止SQL注入攻击。使用参数化查询当我们直接将用户输入拼接到SQL查

See all articles