也许这是一个简单的问题,但我想与其他专家讨论。
问题。
用户提交一些表单(例如在论坛上发布新帖子)。他的浏览器将数据发送到Web应用程序,Web应用程序从js代码中纯化数据并将其保存到DB。没关系。
另一种情况 - 用户向Web应用程序提交数据,但他在数据中出现一些错误并且Web应用程序返回其数据(不将其保存到DB),将它们放入表单中(以便用户不再完成所有操作)并显示消息错误。
问题。
我已经读过某个地方可以进行以下攻击 - 用户按照一些链接(外部链接)重定向到我们的网站并随js一起发送数据。所以问题 - 我们应该在第二种情况下净化数据吗?
答案 0 :(得分:0)
您所要做的就是通过AJAX提交表单。
$("#myForm").ajaxForm({url: 'server.php', type: 'post'})
或
$("#myForm").ajaxSubmit({url: 'server.php', type: 'post'})
如果数据是:
无需其他功能,例如"净化数据"。
答案 1 :(得分:0)
您的意思是CSRF攻击(跨站请求伪造)吗?
如果您的网站有表单,请说明这是example.com
:
<form method="post" action="/postThread.php">
攻击者可以在其网站上包含类似的表单:
<form method="post" action="https://example.com/postThread.php">
并诱使受害者访问他们的网站,同时他们也登录example.com
。
他们可以包含一些JavaScript来提交表单(通过提交HTML表单,可能在IFrame中加载或通过AJAX加载)。最终结果是,攻击者将以受害者的身份在您的网站上启动该主题,因为受害者的cookie将随POST一起提交。
防止这种情况的一种快速方法是设置并检查X-Requested-With
标头,如果所有POST都是通过AJAX完成的。如果没有,您可能需要查看推荐的OWASP Synchronizer Token Pattern。