Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单选按钮和复选框。防止更改value属性_Javascript_Php_Html_Client Side Attacks - Fatal编程技术网

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

Javascript 单选按钮和复选框。防止更改value属性,javascript,php,html,client-side-attacks,Javascript,Php,Html,Client Side Attacks,因此,您有一个复选框或单选按钮,该复选框或单选按钮具有要发送到数据库的预定义值: <input name="statement" type="radio" value="AWENSOME"> 但是,有人或脚本出于恶意,可以很容易地更改复选框/单选按钮的值,例如使用基本的“浏览器页面检查”,然后将其他值发送到数据库。例如: <input name="statement" type="radio" value="NOT SO AWENSOME! STUPID">

因此,您有一个复选框或单选按钮,该复选框或单选按钮具有要发送到数据库的预定义值:

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

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

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


怎样才能阻止那些家伙?谢谢。

不行,最好的方法是收集数据库中所有允许的输入值,并在服务器上每次检查这些值。对于诸如checkbox、select、radio之类的输入,这很容易,因为您确切地知道值可以是什么。对于文本输入,您必须使用regex和sanitanization。

不,您不能,最好的方法是收集数据库中所有允许的输入值,并在服务器上每次检查这些值。对于诸如checkbox、select、radio之类的输入,这很容易,因为您确切地知道值可以是什么。对于文本输入,您必须使用regex和sanitanization。

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

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

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

  • 在数据库中列出有效值,一旦用户选择,服务器将检查复选框或单选框中的值是否存在
  • 将radio/checkbox的值设置为加密的,或者说有一些独特的格式,例如服务器可以识别的
    zkdie23doo44s
  • 定期检查html复选框,并根据服务器中的原始html脚本重新加载值

  • 希望这能帮助您获得一两个想法。

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

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

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

  • 在数据库中列出有效值,一旦用户选择,服务器将检查复选框或单选框中的值是否存在
  • 将radio/checkbox的值设置为加密的,或者说有一些独特的格式,例如服务器可以识别的
    zkdie23doo44s
  • 定期检查html复选框,并根据服务器中的原始html脚本重新加载值

  • 希望这能帮助您获得一两个想法。

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

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

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

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

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

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

    你不能,重新检查服务器端的值是你的责任,因为解决方案是定义方法来比较服务器端的值,防止那些错误的值被发送到DB,对吗?@Arun P Johny我同意you@agaezcode对你是对的……你不能,重新检查服务器端的值是你的责任,因为解决方案是定义方法来比较服务器端的值,防止那些错误的值被发送到DB,对吗?@Arun P Johny我同意you@agaezcode对你是对的…我同意,唯一的方法是用数据库条目替换属性中的每个字符串,但可能会降低网页的整体性能。为了获得更好的性能,它也可以存储在静态类中定义的数组中,或者例如APC缓存中。好的,谢谢大家。我想看看这是否是解决这些问题的另一种解决方案。我想我将采用从服务器端进行比较的解决方案。。。谢谢。我同意,唯一的方法是用数据库条目替换属性中的每个字符串,但这可能会降低网页的整体性能。为了获得更好的性能,它也可以存储在静态类中定义的数组中,或者存储在APC缓存中。好的,谢谢大家。我想看看这是否是解决这些问题的另一种解决方案。我想我将采用从服务器端进行比较的解决方案。。。谢谢,卡兹拉,酷。很高兴看到有更多的解决方案。谢谢你,卡兹拉,酷。很高兴看到有更多的解决方案。非常感谢。