单选按钮和复选框。防止更改value属性

时间:2015-02-26 09:39:27

标签: javascript php html client-side-attacks

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

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

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

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

怎么能阻止这些家伙呢?谢谢。

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

有许多方法可以防止无效数据进入db:

  1. 在数据库中列出有效值,一旦用户选择它,服务器将检查复选框或无线电中的值是否存在
  2. 使收音机/复选框的值加密,或者说可以让您的服务器识别出一些像zkdie23doo44s这样的独特格式。
  3. 定期检查html复选框并根据服务器中的原始html脚本重新加载值
  4. 希望这有助于你得到一两个想法......

答案 2 :(得分:1)

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

答案 3 :(得分:1)

如果你使用的是php,那么在你的模型中这样的东西会有所帮助:

if ($data['statement'] == 'AWENSOME' || $data['statement'] == 'FOOBAR' )
{
   $statement = $data['statement'];
} else
{
   // abort the app or return an error to the user
}