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

 -不想醒来-县 发布于 2022-10-31 09:12

对于现在存在的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元,对于这种攻击有什么好的防护手段??

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

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

    csrf做好请求来源的验证。

    2022-10-31 23:00 回答
  • if you use JAVA:
      觉得RASP,是挺不错的想法。

    visit 实时应用自我保护

    2022-10-31 23:00 回答
  • 防御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值然后作为参数发送(这个貌似还不错)等等。。。

    2022-10-31 23:00 回答
  • 这是你自己的业务逻辑问题,可以使用restful API, 涉及到修改,添加,删除 操作的,不用get请求。

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

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

    2022-10-31 23:00 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有