我一直在阅读有关表单欺骗的内容,只是无法理解为什么当我们可以确保正确验证传递的值时防止它如此重要?也许我在这里遗漏了一些东西,但这里有一个例子:
example.org/form.html:
<form method="post" action="post.php">
<input type="text" name="content" value="something">
<input type="submit" name="post" value="Post">
</form>
example.org/post.php:
if (isset($_POST['content']))
{
$content = filter_var($_POST['content'], FILTER_SANITIZE_STRING);
//use $content as a sanitized variable, pass it to a database, etc.
}
例如,恶意用户可以简单地将 form.html 中的输入字段更改为<textarea name="content">something here</textarea>
,但这对任何事情有什么影响呢?我们确保无论如何都会从 post.php 脚本中的字符串中删除标签。
所以这是我的问题:是否可以安全地假设,通过适当的输入验证,PHP 表单欺骗在安全性方面应该几乎没有危险?恶意用户还能通过name="content"
属性(除了 textarea、select 和所有其他标签)向脚本传递什么可以有效地削弱数据库或其他东西?因为如果他们无能为力,为什么还要使用代币?