是的。多少,以及您是否可以允许表格取决于您的具体情况。
带有推荐人检查的 CSRF
如果您的 CSRF 保护依赖于引用检查,而不是令牌,则允许表单意味着您将容易受到 CSRF 的攻击。
当您禁止脚本时,受害者仍然需要实际单击表单,但这可以通过社会工程或 ClickJacking 来实现。
例如,攻击者可以放置一个 paypal 按钮,该按钮实际上会添加一个新的管理员用户,希望您点击它。
当然,这也适用于链接,但仅适用于 GET 请求,不适用于 POST 请求。
具有现有表格的 CSRF
听起来你的过滤器是一个通用过滤器,过滤掉所有可能有危险的标签。但是在某些特定情况下,您绝对不需要表单标签,例如在表单内回显用户输入时。
例如,如果您在管理后端有这样的用户编辑表单:
<form action="admin_user_edit.php">
<input type="text" name="csrf-token" value="[CSRF token]">
<input type="text" name="password" value="[value from database]">
<input type="text" name="username" value="[value from database]">
<input type="text" name="role" value="[value from database]">
<input type="submit" value="Submit">
</form>
现在,用户可以命名自己foobar"><input type="hidden" name="role" value="admin"><input type="submit" value="Submit"></form>。如果他们现在让管理员编辑他们的个人资料,他们将是管理员,而管理员不想让他们成为管理员。
网络钓鱼
表单也可用于网络钓鱼攻击。这同样取决于您的用户输入所在的特定上下文,但从理论上讲,攻击者可以例如显示一个要求登录凭据、信用卡详细信息等的表单,然后将它们发送到他们自己的服务器。
希望受害者不会将表单解释为用户输入,而是属于您的网站。