yii过滤xss代码,防止sql注入

作者:白狼 出处:www.manks.top/article/yii2_filter_xss_code_or_safe_to_database

本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

实际开发中,涉及到的语言也好,框架也罢,web安全问题总是不可避免要考虑在内的,潜意识中的考虑。

意思就是说喃,有一条河,河很深,在没办法游过去的情况下你只能沿着河上唯一的一座桥走过去。

好啦,我们看看在yii框架的不同版本中是怎么处理xss攻击,sql注入等问题的。

啥啥啥,xss是啥,sql注入又是啥?哦我的天呐,不好意思,我也不知道,这个您问问小度小哥都行,随您。

通俗的说喃,就是两个原则问题:

1、表单提交内容,想安全的存入数据库

2、想安全的对数据进行输出

有同学疑问来了,我的数据都安全的存到数据库了,都已经是安全的了,咋输出还要过滤呢?博主si是si犯浑,有毛病勒。

不着急,我们先来看看yii中是怎么处理我们所说的安全问题。

无论是yii还是yii2版本,数据查询,数据入库,我们都可以很好的用AR操作进行,这样就灰常简单的避免了sql注入问题,为啥就so easy的避免了呢,这是因为在AR的底层,其实对PDO进行的封装,所以喃,妈妈再也不用担心注入的问题了

有同学在嘀咕了,我们查询的sql很复杂的,用yii的AR操作不了,不写sql不行,你看着办吧。吓唬小孩呢,还有操作不了的,头一次见!

当然啦,在不涉及接收参数的情况下,要不要用原生sql您随意,但是涉及外参的情况下,您要是想用sql查询请尽量用占位去操作,不是不相信您自己个的"过滤",其实也是不敢相信,如果您坚持自己个写原生sql,您随意好吧

下面我们来看看问题2,数据安全的输出,这个在yii和yii2中还是有一丁点差别滴。

yii中,纯文本输出呢,很简单,我们对要输出的内容CHtml::encode()即可,别嚷嚷,我知道你想说啥,对于想输出html文本,可以采用如下方式:

$purifier = new CHtmlPurifier;echo $purifier->purify($content);

放心,代码里面的js啥的统统会以文本的形式输出显示,那这里的xss问题我们也就可以放心了。

那要是yii2,又是怎样处理的喃?

<?= \yii\helpers\Html::encode($title) //纯文本 ?>
<?= \yii\helpers\HtmlPurifier::process($content) //html显示的文本 ?>

注意: HtmlPurifier 帮助类的处理过程较为费时,建议增加缓存

时间: 2024-07-31 16:00:13

yii过滤xss代码,防止sql注入的相关文章

ASP.NET MVC 5使用Filter过滤Action参数防止sql注入,让你代码安全简洁

在开发程序的过程中,稍微不注意就会隐含有sql注入的危险.今天我就来说下,ASP.NET mvc 5使用Filter过滤Action参数防止sql注入,让你代码安全简洁.不用每下地方对参数的值都进行检查,看是用户输入的内容是否有危险的sql.如果每个地方都要加有几个缺点: 1.工作量大 2.容易遗漏 3.不容易维护 下面我通过写一个过滤防止sql的特性类,对Action执行前对Action的参数进行处理,如果有其值有sql语句,就会这些非法字符替换为空字符串. 一.sql注入的例子: 上面的输入

ASP.NET MVC 5使用Filter过滤Action参数防止sql注入

在开发程序的过程中,稍微不注意就会隐含有sql注入的危险.今天我就来说下,ASP.NET mvc 5使用Filter过滤Action参数防止sql注入,让你代码安全简洁.不用每下地方对参数的值都进行检查,看是用户输入的内容是否有危险的sql.如果每个地方都要加有几个缺点: 1.工作量大 2.容易遗漏 3.不容易维护 下面我通过写一个过滤防止sql的特性类,对Action执行前对Action的参数进行处理,如果有其值有sql语句,就会这些非法字符替换为空字符串. 一.sql注入的例子: 上面的输入

ecshop 全系列版本网站漏洞 远程代码执行sql注入漏洞

ecshop漏洞于2018年9月12日被某安全组织披露爆出,该漏洞受影响范围较广,ecshop2.73版本以及目前最新的3.0.3.6.4.0版本都受此次ecshop漏洞的影响,主要漏洞是利用远程代码执行sql注入语句漏洞,导致可以插入sql查询代码以及写入代码到网站服务器里,严重的可以直接获取服务器的管理员权限,甚至有些网站使用的是虚拟主机,可以直接获取网站ftp的权限,该漏洞POC已公开,使用简单,目前很多商城网站都被×××,危害较大,针对于此我们SINE安全对该ECSHOP漏洞的详情以及如

WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案

对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避免后知后觉的犯下大错,专门参考大量前辈们的心得,小小的总结一下,欢迎大家拍砖啊 一.跨站脚本攻击(XSS) 跨站脚本攻击的原理 XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.它指的是恶意攻击者往Web页面里插入恶意脚本代码,而程序对于用户输入内容未过滤,当用户浏览该页之时

xss攻击和sql注入防范

php xss攻击防范 如果类似商品标题之类的,可以使用 strip_tags() 过滤,全部清除掉html标签. 如果类似商品描述之类的,可以使用 htmlspecialchars() 过滤,把html标签转义. sql注入防范 数字类型参数,可以使用 (int)/intval() 强制转为整形. 字符串类型参数,可以使用 mysql_real_escape_string() 转义特殊字符. java xss攻击防范 输入时处理,使用 StringEscapeUtils.escapeHtml4

addslashes,htmlspecialchars,htmlentities转换或者转义php特殊字符防止xss攻击以及sql注入

一.转义或者转换的目的 1. 转义或者转换字符串防止sql注入 2. 转义或者转换字符防止html非过滤引起页面布局变化 3. 转义或者转换可以阻止javascript等脚本的xss攻击,避免出现类似恶意弹窗等等形式 二.函数 1. addslashes($str); 此函数转义预定义的字符:单引号(‘),双引号(“),反斜线(\)与NULL(NULL字符) 转义出现在html中的单引号(‘)和双引号(“),经过测试效果不是很好,转义html中的特字符就使用htmlspecialchar()函数

yii2过滤xss代码,防止sql注入

两个原则问题:1.表单提交内容,想安全的存入数据库2.想安全的对数据进行输出 <?= \yii\helpers\Html::encode($title) //纯文本 ?><?= \yii\helpers\HtmlPurifier::process($content) //html显示的文本 ?> 原文地址:https://blog.51cto.com/13238147/2360550

PHP_解析xss攻击、sql注入

/** * PHP解决XSS(跨站脚本攻击)的调用函数 * PHP跨站脚本漏洞补丁,去除XSS(跨站脚本攻击)的函数,把以下代码保存在function.php文件中,在需要防御的页面中include * Enter description here ... * @param unknown_type $val */ function RemoveXSS($val) { $val = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/', '', $

浅析php过滤html字符串,防止SQL注入的方法

批量过滤post,get敏感数据 复制代码 代码如下: $_GET = stripslashes_array($_GET);$_POST = stripslashes_array($_POST); 数据过滤函数 复制代码 代码如下: function stripslashes_array(&$array) { while(list($key,$var) = each($array)) {  if ($key != 'argc' && $key != 'argv' &&