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 帮助类的处理过程较为费时,建议增加缓存
yii过滤xss代码,防止sql注入的更多相关文章
- 过滤xss攻击和sql注入函数
/**+----------------------------------------------------------* The goal of this function is to be a ...
- ASP.NET MVC 5使用Filter过滤Action参数防止sql注入,让你代码安全简洁
在开发程序的过程中,稍微不注意就会隐含有sql注入的危险.今天我就来说下,ASP.NET mvc 5使用Filter过滤Action参数防止sql注入,让你代码安全简洁.不用每下地方对参数的值都进行检 ...
- AOP实践—ASP.NET MVC5 使用Filter过滤Action参数防止sql注入,让你代码安全简洁
在开发程序的过程中,稍微不注意就会隐含有sql注入的危险.今天我就来说下,ASP.NET mvc 5使用Filter过滤Action参数防止sql注入,让你代码安全简洁.不用每下地方对参数的值都进行检 ...
- 最新版SEMCMS_PHP_3.5 过滤不严导致sql注入
一.漏洞分析 在分析过程中看到网上已经有人发现semcms V2.4存在过滤不严导致sql注入的漏洞,不知道咋还没改,而且最新版过滤的关键字更少了. 首先查看首页文件index.php的代码 < ...
- Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说。。。
Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说... root@xi4ojin:~# cd ...
- ecshop 全系列版本网站漏洞 远程代码执行sql注入漏洞
ecshop漏洞于2018年9月12日被某安全组织披露爆出,该漏洞受影响范围较广,ecshop2.73版本以及目前最新的3.0.3.6.4.0版本都受此次ecshop漏洞的影响,主要漏洞是利用远程代码 ...
- WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案(转)
对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...
- WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案
对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...
- DEDECMS数据库执行原理、CMS代码层SQL注入防御思路
我们在上一篇文章中学习了DEDECMS的模板标签.模板解析原理,以及通过对模板核心类的Hook Patch来对模板的解析流量的攻击模式检测,达到修复模板类代码执行漏洞的目的 http://www.cn ...
随机推荐
- asp.net网站优化经验之谈
最近公司一个项目上线后,经常崩溃,于是开始重视性能问题,在网上看到了许多相关文章,整理下发了上来.以备参考. 在用ASP.NET开发网站的时候,性能是永远需要考虑和关注的问题,性能不仅仅只是程序代码执 ...
- 新学C++的for,switch和随机数
通过一个小程序学习: #include<iostream> #include<cstdlib> #include<ctime> using namespace st ...
- LINQ TO SQL 大全
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 LINQ to SQL语句(1)之Where 适用场景: ...
- Asp.net Mvc模块化开发系列(目录)
模块化开发是非常重要的,模块化开发是个系统性问题,为此我觉得有必须要写一个系列的文章才能基本说的清楚 那又为什么要写一个目录呢? 其一.是对我昨天承诺写一个系列新的文章的回应 其二.是先写出一个大纲, ...
- css3渐变(Gradients)
<html> http://www.runoob.com/css3/css3-gradients.html CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的 ...
- 使用Eclipse为Android定义style
1.首先,在values目录下,新建一个styles.xml文件: 2.进入styles.xml文件,点击Resources: 3.点击Add按钮,在弹出的对话框中选择在顶层创建新元素,在选择Styl ...
- 第 30 章 使用 Emmet 插件
学习要点: 1.安装方式 2.自定义!生成 3.快速生成 主讲教师:李炎恢 本章主要探讨了解一下 Sublime Text3 的一个 HTML5 代码提示插件:Emmet,这个插件比自带原生的要强 ...
- 第 12 章 CSS 入门
学习要点: 1.使用 CSS 2.三种方式 3.层叠和继承 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS(层叠样式表),它是用来对 HTML 文档外观的表现形式进行排版和格式化. 一.使用 ...
- ACm-ICPC Live Archive 7464---Robots
ACm-ICPC Live Archive 7464---Robots Write a program to collect data from robots. We are given two se ...
- c# 学习心得(函数方法类)
函数或者说方法都是写在类下的,我们可以通过函数名来调用它们.首先,我们要弄清楚为什么会有函数或者说方法这种东西?这里,我们使用了与前一篇同样的思维方式,先从它的目的或者实用价值出发.当我们在编写程序的 ...