美文网首页
tp5防sql注入

tp5防sql注入

作者: Mracale | 来源:发表于2021-05-10 17:53 被阅读0次

在 application/config.php 中有个配置选项
框架默认没有设置任何过滤规则,你可以是配置文件中设置全局的过滤规则
则会调用这些函数 自动过滤

function safe_replace($string) {
   $string = str_replace('%20','',$string);
   $string = str_replace('%27','',$string);
   $string = str_replace('%2527','',$string);
   $string = str_replace('*','',$string);
   $string = str_replace('"','"',$string);
   $string = str_replace("'",'',$string);
   $string = str_replace('"','',$string);
   $string = str_replace(';','',$string);
   $string = str_replace('<','&lt;',$string);
   $string = str_replace('>','&gt;',$string);
   $string = str_replace("{",'',$string);
   $string = str_replace('}','',$string);
   $string = str_replace('\\','',$string);
   return $string;
}
// 默认全局过滤方法 用逗号分隔多个
'default_filter' => 'htmlspecialchars,addslashes,strip_tags,safe_replace',
htmlspecialchars:防XSS攻击,尖括号等转义过滤
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。

预定义的字符是:

&:转换为&amp;
":转换为&quot;
':转换为成为 '
<:转换为&lt;
>:转换为&gt;

htmlspecialchars()函数语法格式:

$str = htmlspecialchars(string,flags,character-set,double_encode);

参数说明

string:规定要转换的字符串;
flags :可选参数,规定如何处理引号、无效的编码以及使用哪种文档类型;
可用的引号类型:

ENT_COMPAT:默认。仅编码双引号。
ENT_QUOTES:编码双引号和单引号。
ENT_NOQUOTES:不编码任何引号。
无效的编码:

ENT_IGNORE:忽略无效的编码,而不是让函数返回一个空的字符串。应尽量避免,因为这可能对安全性有影响。
ENT_SUBSTITUTE: 把无效的编码替代成一个指定的带有 Unicode 替代字符 U+FFFD(UTF-8)或者 &#FFFD; 的字符,而不是返回一个空的字符串。
ENT_DISALLOWED: 把指定文档类型中的无效代码点替代成 Unicode 替代字符 U+FFFD(UTF-8)或者 &#FFFD;。
规定使用的文档类型的附加 flags:

ENT_HTML401 - 默认。作为 HTML 4.01 处理代码。
ENT_HTML5:作为 HTML 5 处理代码。
ENT_XML1:作为 XML 1 处理代码。
ENT_XHTML: 作为 XHTML 处理代码。
character-set :可选。一个规定了要使用的字符集的字符串。
允许的值:

UTF-8:默认。ASCII 兼容多字节的 8 位 Unicode
ISO-8859-1:西欧
ISO-8859-15:西欧(加入欧元符号 + ISO-8859-1 中丢失的法语和芬兰语字母)
cp866:DOS 专用 Cyrillic 字符集
cp1251:Windows 专用 Cyrillic 字符集
cp1252: Windows 专用西欧字符集
KOI8-R: 俄语
BIG5 :繁体中文,主要在台湾使用
GB2312: 简体中文,国家标准字符集
BIG5-HKSCS:带香港扩展的 Big5
Shift_JIS:日语
EUC-JP:日语
MacRoman:Mac 操作系统使用的字符集
注释:在 PHP 5.4 之前的版本,无法被识别的字符集将被忽略并由 ISO-8859-1 替代。自 PHP 5.4 起,无法被识别的字符集将被忽略并由 UTF-8 替代。

double_encode:可选参数,一个规定了是否编码已存在的 HTML 实体的布尔值(TRUE:默认,将对每个实体进行转换;FALSE:不会对已存在的 HTML 实体进行编码);
addslashes:防SQL注入,在每个双引号(")前添加反斜杠
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。

预定义字符是:

单引号(')
双引号(")
反斜杠(\)
NULL
提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串。

注释:默认地,PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
strip_tags:剥去字符串中的 HTML 标签
strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签。

注释:该函数始终会剥离 HTML 注释。这点无法通过 allow 参数改变。

注释:该函数是二进制安全的。

语法
strip_tags(string,allow)

相关文章

  • tp5防sql注入

    在 application/config.php 中有个配置选项框架默认没有设置任何过滤规则,你可以是配置文件中设...

  • tp5防sql注入

    在 application/config.php 中有个配置选项框架默认没有设置任何过滤规则,你可以是配置文件中设...

  • TP5框架 《防sql注入、防xss攻击》

    TP框架中有自带的防止xss(跨站脚步攻击)、sql注入,在 application/config.php 中有个...

  • 6.mysql安全性

    SQL语句应该考虑哪些安全性? Sql查询的安全方案【就是考察sql注入】 1.使用预处理语句,防Sql注入 【p...

  • 防sql注入

    1.对提交的转义 //如果启用了魔术引号 echo$_POST['lastname'];//O\'reilly e...

  • SQL防注入

    1、什么是SQL注入 具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以...

  • 网络信息安全攻防学习平台 注入关第三

    防注入分值: 300 小明终于知道,原来黑客如此的吊,还有sql注入这种高端技术,因此他开始学习防注入! 通关地址...

  • 面试题1--web安全问题,死锁,进程与线程,并发与并行

    web安全问题:SQL防注入,XSS攻击,CSRF攻击 1. SQL注入是一种将sql代码添加到输入参数中,传递到...

  • 学习笔记 face

    1.使用预处理语句防 sql注入 sql注入 id = "1 or 1=1"; 2.写入数据库的数据要进行特殊字符...

  • SQL防注入总结

    0x00 背景 自己一个人学了这么久的web安全,感觉需要一些总结,加上今天下午电话面试总被问到的问题,自己总结了...

网友评论

      本文标题:tp5防sql注入

      本文链接:https://www.haomeiwen.com/subject/mtwidltx.html