首页 > 对于现在存在的SQL注入、XSS的攻击,CSRF目前有什么好的防御手段?

对于现在存在的SQL注入、XSS的攻击,CSRF目前有什么好的防御手段?

对于现在存在的SQL注入、XSS的攻击,目前有什么好的防御手段?

比如说:

我以GET请求来完成转账A银行网站的转账

http://www.mybank.com/Transfer.php?toBankId=11&money=1000

而银行B存在一段HTML代码如下

http://www.mybank.com/Transfer.php?toBankId=11&money=1000

我访问A,然后访问B,结果发现我的银行卡少了1000元,对于这种攻击有什么好的防护手段??


不知道是题主猜测的,还是真实存在这样的代码。每次转账请求都是唯一url的,url不可能被重复利用,会利用一个字段进行判断,比如把所有参数md5,还会加上每个客户端的secret key。这样不同的客户端是生成的url是不同的,而且还会加上时间戳,生成的url只有在很短的时间内有效。


产生sql注入和xss主要是因为用户的输入到了后台变成了代码,在服务器端需要限制的话就是做好输入的验证;也可以考虑在处理前过一下检测,参考modsecurity。

csrf做好请求来源的验证。


if you use JAVA:
  觉得RASP,是挺不错的想法。

visit 实时应用自我保护


这是你自己的业务逻辑问题,可以使用restful API, 涉及到修改,添加,删除 操作的,不用get请求。

你这种的话至少可以判断session,是否为当前用户吧。

对于你所说的另一人访问了这个URL而导致数据库的操作,这叫非授权访问。你应该判断是否有权限才进行下一步操作。


防御XSS攻击,可参考:
http://.com/q/1010000004067521

防御SQL注入,可参考:
http://.com/q/1010000002920926

防御CSRF攻击(注意:前提是要先防御好XSS):
主要思路就是区分请求的来源是你的网页还是别人的网页。。。
所以大的方向,就是利用你的html、js、cookie等等和别人的不同来进行防御。。。
简单方法是判断请求的Referer参数(但是不能绝对安全)。
复杂方法就是加上一个Token(随机字符串参数,和Session绑定,例子:每个用户在每次登录的时候重新分配一个随机字符串Token)。
Token参数可以写在Form表单隐藏的input里,或者AJAX请求的时候带上。
别人的网页是没法知道你的Token参数的,这是目前已知的最好的方法。
还有一些奇葩方法,比如只允许用POST参数(也不能绝对安全),计算Cookie的Hash值然后作为参数发送(这个貌似还不错)等等。。。

【热门文章】
【热门文章】