1

所以你有一个带有预定义值的复选框或单选按钮要发送到数据库:

<input name="statement" type="radio" value="AWENSOME">

但是出于恶意的某人或脚本可以使用例如基本的“浏览器页面检查”轻松更改复选框/单选按钮的值,然后将其他值发送到数据库。例如:

<input name="statement" type="radio" value="NOT SO AWENSOME! STUPID">

怎么能阻止那些家伙?谢谢你。

4

4 回答 4

2

不,你不能,最好的方法是收集数据库中所有允许的输入值,并每次在服务器上检查这些值。在复选框、选择、单选等输入的情况下很容易,因为您确切知道这些值可以是什么。在文本输入的情况下,您必须使用正则表达式和清理。

于 2015-02-26T09:43:47.457 回答
1

如果您使用的是 php,那么您模型中的类似内容可能会有所帮助:

if ($data['statement'] == 'AWENSOME' || $data['statement'] == 'FOOBAR' )
{
   $statement = $data['statement'];
} else
{
   // abort the app or return an error to the user
}
于 2015-02-26T10:26:08.580 回答
1

你不能这样做,你必须在服务器端再次检查,对于像复选框这样的框,你知道值,对于文本框,你可以使用正则表达式

于 2015-02-26T09:58:38.373 回答
1

您不能完全阻止用户在浏览器中修改 html 脚本,但您可以阻止不必要的数据进入您的数据库。

为了防止这种情况发生,您应该在服务器端的 php 脚本中有一个验证器。

有很多方法可以防止无效数据进入数据库:

  1. 在数据库中列出有效值,一旦用户选择它,服务器将检查复选框或单选框中的值是否存在
  2. 使单选框/复选框的值加密,或者可以说有一些独特的格式zkdie23doo44s可以由您的服务器识别..
  3. 定期检查 html 复选框并根据服务器中的原始 html 脚本重新加载值

希望这可以帮助您获得一两个想法..

于 2015-02-26T09:52:12.130 回答