JavaWeb

2019-03-31  本文已影响0人  蜡笔没了小新_e8c0

1.什么是 XSS 攻击,如何避免?

XSS攻击,即跨站脚本攻击。 原理是攻击者往 web 页面里插入恶意的脚本代码(CSS代码、JavaScript代码等),当用户浏览该页面时,嵌入其中的脚本代码会被执行,从而达到恶意攻击用户的目的。如盗取用户cookie,破坏页面结构、重定向到其他网站等。
例如:
在一个表单输入框中输入了随机的字符串,然后将字符串在另一个地方当成value变量输出。
<span value="字符串信息"></span>
如果字符串信息为:

"/><script>alert(document.cookie)</script><!-

那么转换后的结果就是:

<span value=" "/><script>alert(document.cookie)</script><!- "></span>

这将直接泄露用户的cookie信息。

预防措施

PHPhtmlentities()或是htmlspecialchars()
Pythoncgi.escape()
ASPServer.HTMLEncode()
ASP.NETServer.HtmlEncode()或功能更强的Microsoft Anti-Cross Site Scripting Library
Javaxssprotect (Open Source Library)
Node.js的node-validator。

2.什么是 CSRF 攻击,如何避免?

CSRF的全称是“跨站请求伪造”。CSRF原理是伪造用户的正常操作,例如,当用户登录一个安全网站A,在浏览器中会保存用户的cookie,此时,当用户再去访问一个非法网站B,非法网站中会存在对网站A的请求,由于浏览器中已经保存了用户的cookie,所以安全网站会认为此请求是合法的,从而进行一些操作,但该操作是由非法网站发起的,是一种伪造用户行为的过程。

防御策略:

缺点:Referer的值是由浏览器提供,不同浏览器的实现方式不同。同时,合法用户也可以在浏览器中设置拒绝提供Referer。

3.如何避免 sql 注入?

上一篇 下一篇

猜你喜欢

热点阅读