<dd id="yzu3f"><tr id="yzu3f"><kbd id="yzu3f"></kbd></tr></dd>

              安基网 首页 安全 Web安全 查看内容

              让你彻底了解SQL注入、XSS和CSRF

              2019-2-24 11:34| 投稿: xiaotiger |来自: 互联网


              免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和?#35745;?#29256;权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

              摘要: 相信大家在各种技术文章都看到过SQL注入、XSS和CSRF这三个名词,但是我觉得有一部分人可能并不清楚这三个词的真正含义。接下来,我就说下这三个名词的含义,希望对大家能有所帮助。SQL注入SQL注入是属于注入式攻击, ...

              相信大家在各种技术文章都看到过SQL注入、XSS和CSRF这三个名词,但是我觉得有一部分人可能并不清楚这三个词的真正含义。接下来,我就说下这三个名词的含义,希望对大家能有所帮助。


              SQL注入

              SQL注入是属于注入式攻击,这种攻击是因为在项目中没有将代码与数据(比如用户敏感数据)隔离,在读取数据的时候,错误的将数据作为代码的一部?#31181;?#34892;而导致的。

              典型的例子就是当对SQL语句进行字符串拼接的时候,直接使用未转义的用户输入内容作为变量。这时,只要在sql语句的中间做修改,比如?#30001;蟙rop、delete等关键字,执行之后后果不堪设想。

              说到这里,那么该怎?#21019;?#29702;这种情况呢?三个方面:

              1、过滤用户输入?#38382;?#20013;的特殊字符,降低风险。

              2、禁止通过字符串拼接sql语句,要严格使用?#38382;?#32465;定来传入?#38382;?/p>

              3、合理使用数据库框架提供的机制。就比如Mybatis提供的传入?#38382;?#30340;方式 #{},禁止使用${},后者相当于是字符串拼接sql,要使用?#38382;?#21270;的语句。

              总结下,就是要正确使用?#38382;?#21270;绑定sql变量。

              XSS

              XSS:跨站脚本攻击,Cross-Site Scripting,为了和前端的css避免重名,简称为XSS,是指通过技术手段,向正常用户请求的HTML页面中插入恶意脚本,执行。

              这种攻击主要是用于信息窃取和?#33529;?#31561;目的。比如2011年的微博XSS攻击?#24405;?#25915;击者利用了微博发布功能中未对action-data漏洞做有效的过滤,在发布微博信息的时候带上了包含攻击脚本的URL,用户访问就会加载恶意脚本,导致大量用户被攻击。

              关于防范XSS?#24076;?#20027;要就是通过对用户输入的数据做过滤或者是转义,可以使用框架提供的工具类HtmlUtil。另外前端在浏览器展示数据的时候,要使用安全的API展示数据。比如使用innerText而不是innerHTML。

              CSRF

              跨站请求伪造,在用户并不知情的情况下,冒充用户发送请求,在当前已经登录的web网站上执行恶意操作,比如恶意发帖,修改密码?#21462;?/p>

              大致来看,与XSS有重合的地方,前者是黑客盗用用户浏览器中的登录信息,冒充用户去执行操作。后者是在正常用户请求的HTML中放入恶意代码,

              XSS问题出在用户数据没有转义,过滤;CSRF问题出现在HTTP接口没有防范不守信用的调用。

              防范CSRF的漏洞方式:

              1、CSRF Token验证,利用浏览器的同源限制,在HTTP接口执行前验证Cookie中的Token,验证通过才会继续执行请求。

              2、人机交互,例如短信验证码、界面的滑块。

              之前在会议上也有一个思考,在人机验证这块,如果不用验证码的方式,用界面上的滑块这种方式,而?#19968;?#22359;还是第三方的。在APP的注册、登录使用这种人机验证的方式的话,如果第三方出现了问题,那么自己的APP就完全崩掉了,发版之后的APP什么也改不了。

              这个问题,你们能想到解决方案吗?在下一篇文章中,我会说一下?#33268;?#30340;结果。

              希望这点分享会对每个读者有所帮助。

              这样的分享我会一直?#20013;?#20320;的关注、转发和点赞是对我最大的支持,感谢。

              欢迎关注我的公众号:java技术情报局,这里会长期分享技术干货,和你一起变得更强。

              题图:作者实拍



              小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册账号,公开课频道价?#20302;?#20803;IT培?#21040;?#31243;免费学,让您少走弯路、事半功倍,好工作升职?#26377;劍?/font>

              本文出自:https://www.toutiao.com/a6661148739748495883/

              免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和?#35745;?#29256;权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!


              鲜花

              ?#24080;?/a>

              雷人

              路过

              鸡蛋

              相关阅读

              最新评论

               最新
              返回顶部
              十一选五奖金对照表