当前位置:  开发笔记 > 运维 > 正文

对于Web应用程序,预防XSS是否优先选择POST而不是GET?

如何解决《对于Web应用程序,预防XSS是否优先选择POST而不是GET?》经验,为你挑选了1个好方法。

Web应用程序的当前趋势似乎是对所有内容使用GET请求.具体来说,使用描述服务,命令及其参数的RESTful URL.几个月前,Jeff Atwood发布了XSS的危险性.他演示了甚至允许用户在您的网站上发布一些看似无害的"img"标签可能会导致XSS漏洞.原因是浏览器只是盲目地请求"src"属性中的url,这可能只会令人讨厌,比如将用户注销,或者更不祥的事情.

十年前,当我第一次开始进行Web开发时,传统的观点是总是喜欢POST而不是GET表单,并且要求服务器端的应用程序需要POST来提交表单,正是出于这个原因.浏览器一直发送GET请求(如前面提到的"img"标记示例),但它们仅在某些情况下发送POST请求(具体地说,将"method"属性设置为POST的表单).通过要求POST,似乎可以消除大部分XSS攻击.这是否适合他们的正当理由?



1> jalf..:

从什么时候开始,REST意味着将GET用于一切?最后我查了一下,这意味着恰恰相反.使用GET请求获取资源,使用POST将其发布到服务器.

REST的一个关键点是使用最佳映射到您尝试执行的操作的HTTP请求.GET应该用于它的目的:从服务器获取数据,而不改变服务器上的状态.它不应该用于更新服务器上的资源.POST或PUT就是为此而设计的.

使用HTTP的方式既可以帮助避免一些(但远非所有)XSS攻击,也可以使浏览器在与您的站点通信时表现得更好.浏览器期望可以安全地重复GET请求,而无需用户确认.例如,如果刷新页面,或者使用后退/前进按钮,它就是这样做的.POST应该会更改服务器上的状态,因此浏览器通常会在重复POST请求之前要求确认.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有