web安全

常见的web安全问题

XSS跨站请求攻击

场景:在一个网站中我发表了一篇博客,嵌入了一段script脚本,获取当前浏览器的cookie,发送到我的服务器,看这篇博客的人都执行了这个脚本,自动把他们的cookie发送到了我的服务器。 

预防:把< >转义, <变为&lt;   >变为&gt; 直接显示出来,而不是作为标签脚本执行。

如果在大型项目中,可以用xss插件,安装和用法详见:http://npmjs.com/package/xss.

CSRF跨站请求伪造

在没有关闭相关网页的情况下,点击其他人发来的CSRF链接,利用客户端的cookie直接向服务器发送请求。

场景,你正在浏览一个商城网站,这时候我给你发了一个邮件,里面是个图片,图片的url是xsrf链接,利用你的cookie,伪造你发了一个请求。

xsrf攻击的表现:构造攻击页面,把网页部署好,然后链接发给其他人,当其他人点击链接的时候,会显示404,这时候会以为点了一个无效的链接。但是其中的img的src会请求一次。

预防:

1、对于web站点,将持久化的授权方法(例如cookie或者HTTP授权)切换为瞬时的授权方法(在每个form中提供隐藏field),可以帮助网站防止CSRF攻击。

2、对于Ajax请求来说(Ajax是一种用于创建快速动态网页的技术),可以使用“双提交”cookie的方法。简单来说,就是在提交登录请求前,先用Java Script代码读取用于验证的cookie值加入到提交字段。这样就形成了双提交(验证字段有两份,一份在cookie中,一份在POST或URL中)。显然单纯的CSRF只能让请求中带有cookie但是并不能读取cookie加入到POST或URL中。

3、尽管CSRF是web应用的基本问题,不是用户的问题,但用户可以通过一些操作保护他们的帐户,譬如登录缺乏安全设计的网站时,在浏览其它站点前退出已登录站点或者在浏览器会话结束后清理浏览器的cookie。

原文地址:https://www.cnblogs.com/panda-programmer/p/13062691.html