84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
对于现在存在的SQL注入、XSS的攻击,目前有什么好的防御手段?
比如说:
我以GET请求来完成转账A银行网站的转账
http://www.mybank.com/Transfer.php?toBankId=11&money=1000
而银行B存在一段HTML代码如下
我访问A,然后访问B,结果发现我的银行卡少了1000元,对于这种攻击有什么好的防护手段??
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
这是你自己的业务逻辑问题,可以使用restful API, 涉及到修改,添加,删除操作的,不用get请求。
修改
添加
删除
你这种的话至少可以判断session,是否为当前用户吧。
对于你所说的另一人访问了这个URL而导致数据库的操作,这叫非授权访问。你应该判断是否有权限才进行下一步操作。
防御XSS攻击,可参考:http://segmentfault.com/q/1010000004067521
防御SQL注入,可参考:http://segmentfault.com/q/1010000002920926
防御CSRF攻击(注意:前提是要先防御好XSS):主要思路就是区分请求的来源是你的网页还是别人的网页。。。所以大的方向,就是利用你的html、js、cookie等等和别人的不同来进行防御。。。简单方法是判断请求的Referer参数(但是不能绝对安全)。复杂方法就是加上一个Token(随机字符串参数,和Session绑定,例子:每个用户在每次登录的时候重新分配一个随机字符串Token)。Token参数可以写在Form表单隐藏的input里,或者AJAX请求的时候带上。别人的网页是没法知道你的Token参数的,这是目前已知的最好的方法。还有一些奇葩方法,比如只允许用POST参数(也不能绝对安全),计算Cookie的Hash值然后作为参数发送(这个貌似还不错)等等。。。
if you use JAVA: 觉得RASP,是挺不错的想法。
visit 实时应用自我保护
产生sql注入和xss主要是因为用户的输入到了后台变成了代码,在服务器端需要限制的话就是做好输入的验证;也可以考虑在处理前过一下检测,参考modsecurity。
csrf做好请求来源的验证。
不知道是题主猜测的,还是真实存在这样的代码。每次转账请求都是唯一url的,url不可能被重复利用,会利用一个字段进行判断,比如把所有参数md5,还会加上每个客户端的secret key。这样不同的客户端是生成的url是不同的,而且还会加上时间戳,生成的url只有在很短的时间内有效。
这是你自己的业务逻辑问题,可以使用restful API, 涉及到
修改
,添加
,删除
操作的,不用get请求。你这种的话至少可以判断session,是否为当前用户吧。
对于你所说的另一人访问了这个URL而导致数据库的操作,这叫非授权访问。你应该判断是否有权限才进行下一步操作。
防御XSS攻击,可参考:
http://segmentfault.com/q/1010000004067521
防御SQL注入,可参考:
http://segmentfault.com/q/1010000002920926
防御CSRF攻击(注意:前提是要先防御好XSS):
主要思路就是区分请求的来源是你的网页还是别人的网页。。。
所以大的方向,就是利用你的html、js、cookie等等和别人的不同来进行防御。。。
简单方法是判断请求的Referer参数(但是不能绝对安全)。
复杂方法就是加上一个Token(随机字符串参数,和Session绑定,例子:每个用户在每次登录的时候重新分配一个随机字符串Token)。
Token参数可以写在Form表单隐藏的input里,或者AJAX请求的时候带上。
别人的网页是没法知道你的Token参数的,这是目前已知的最好的方法。
还有一些奇葩方法,比如只允许用POST参数(也不能绝对安全),计算Cookie的Hash值然后作为参数发送(这个貌似还不错)等等。。。
visit 实时应用自我保护
产生sql注入和xss主要是因为用户的输入到了后台变成了代码,在服务器端需要限制的话就是做好输入的验证;也可以考虑在处理前过一下检测,参考modsecurity。
csrf做好请求来源的验证。
不知道是题主猜测的,还是真实存在这样的代码。每次转账请求都是唯一url的,url不可能被重复利用,会利用一个字段进行判断,比如把所有参数md5,还会加上每个客户端的secret key。这样不同的客户端是生成的url是不同的,而且还会加上时间戳,生成的url只有在很短的时间内有效。