在网站上,用户可以输入电子邮件帐户以获取访问权限。不希望这个被脚本小猫攻击。
输入项由javascript生成并通过ajax发布。在这种环境中我需要模糊词匹配等东西吗?
答案 0 :(得分:6)
每当您为某些用户提供输入内容的可能性时,每当您的应用程序需要来自用户的某些数据时,这些数据都可能被伪造。
无论您的表单是如何构建的,您的网络服务器都会考虑一些数据;那些形式和数据可以伪造/伪造;因此,您必须为可以发送到您的应用程序的任何内容做好准备。
尽管如此,您还可以添加一些安全级别,例如:
答案 1 :(得分:1)
我认为你的意思是对于使用蛮力式攻击来编写脚本以获取有效电子邮件的人的充分安全性?如果是这样的话,那么你的假设“脚本小子”无法编写一个可以执行你的JavaScript内容的完整浏览器实例,或者确定你的AJAX最终提交的URL然后伪造请求是错误的。
如果您想要防范这些类型的攻击,那么唯一有效的方法是在服务器端添加代码。例如,您可以跟踪每个IP地址发布的错误访问尝试次数,并阻止来自任何IP的请求(大约一个小时左右),这些IP在5分钟的时间跨度内发布超过10个无效请求。然后你可以相当安全地抵御这种攻击,直到遇到一个拥有百万IP僵尸网络和对你网站的怨恨的人。
另一种形式的保护是将一些随机代码从服务器发送到客户端,该客户端随表单一起提交(例如,作为隐藏字段),并对服务器进行编码,以便忽略任何不包含的表单提交这段代码。如果您在显示表单之前有某种方法可以验证用户是否值得信任,那么此解决方案效果最佳(因此它在登录表单的上下文中并不真正有用,但它可以帮助保护任何后续您可能拥有的登录表单)。否则,攻击者编写一个只从服务器获取代码并将其包含在伪造请求中的脚本并不难。
答案 2 :(得分:0)
JavaScript + Ajax表单只是一种更奇特的表单方式。它仍然是一个带有post / get数据的请求,因此应该按照普通的HTML格式进行相同的安全措施。
如果您使用Ajax或基本HTTP请求,请不要发回您不希望用户以任何方式查看的数据。不要通过基本HTTP请求提供的JavaScript / Ajax提供服务或功能。
脚本注入不需要JavaScript / Ajax漏洞,它只需要不安全的后端代码,无法捕获并消除代码注入。