志在指尖
用双手敲打未来

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

置信大家在各种技术文章都看到过SQL注入、XSS和CSRF这三个名词,但是我觉得有一局部人可能并不分明这三个词的真正含义。接下来,我就说下这三个名词的含义,希望对大家能有所协助。
SQL注入
SQL注入是属于注入式攻击,这种攻击是由于在项目中没有将代码与数据(比方用户敏感数据)隔离,在读取数据的时分,错误的将数据作为代码的一局部执行而招致的。
典型的例子就是当对SQL语句停止字符串拼接的时分,直接运用未转义的用户输入内容作为变量。这时,只需在sql语句的中间做修正,比方加上drop、delete等关键字,执行之后结果不堪想象。
说到这里,那么该怎样处置这种状况呢?三个方面:让你彻底理解SQL注入、XSS和CSRF
1、过滤用户输入参数中的特殊字符,降低风险。
2、制止经过字符串拼接sql语句,要严厉运用参数绑定来传入参数。
3、合理运用数据库框架提供的机制。就比方Mybatis提供的传入参数的方式 #{},制止运用${},后者相当于是字符串拼接sql,要运用参数化的语句。
总结下,就是要正确运用参数化绑定sql变量。
XSS
XSS:跨站脚本攻击,Cross-Site Scripting,为了和前端的css防止重名,简称为XSS,是指经过技术手腕,向正常用户恳求的HTML页面中插入歹意脚本,执行。
这种攻击主要是用于信息窃取和毁坏等目的。比方2011年的微博XSS攻击事情,攻击者应用了微博发布功用中未对action-data破绽做有效的过滤,在发布微博信息的时分带上了包含攻击脚本的URL,用户访问就会加载歹意脚本,招致大量用户被攻击。
关于防备XSS上,主要就是经过对用户输入的数据做过滤或者是转义,能够运用框架提供的工具类HtmlUtil。另外前端在阅读器展现数据的时分,要运用平安的API展现数据。比方运用innerText而不是innerHTML。
CSRF
跨站恳求伪造,在用户并不知情的状况下,冒充用户发送恳求,在当前曾经登录的web网站上执行歹意操作,比方歹意发帖,修正密码等。
大致来看,与XSS有重合的中央,前者是黑客盗用用户阅读器中的登录信息,冒充用户去执行操作。后者是在正常用户恳求的HTML中放入歹意代码,
XSS问题出在用户数据没有转义,过滤;CSRF问题呈现在HTTP接口没有防备不守信誉的调用。
防备CSRF的破绽方式:
1、CSRF Token考证,应用阅读器的同源限制,在HTTP接口执行前考证Cookie中的Token,考证经过才会继续执行恳求。
2、人机交互,例如短信考证码、界面的滑块。
之前在会议上也有一个考虑,在人机考证这块,假如不用考证码的方式,用界面上的滑块这种方式,而且滑块还是第三方的。在APP的注册、登录运用这种人机考证的方式的话,假如第三方呈现了问题,那么本人的APP就完整崩掉了,发版之后的APP什么也改不了。

未经允许不得转载:IT技术网站 » 让你彻底理解SQL注入、XSS和CSRF
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载