【问题标题】:I've got an issue doing validations by JavaScript我在通过 JavaScript 进行验证时遇到问题
【发布时间】:2015-02-08 22:29:43
【问题描述】:

如果我使用 ID 或类型(在 jQuery 中)等验证任何文本框,例如:

var element=document.getElementById('tbxSearchField').value
if(element=="")
{alert("please enter text");}

HTML 是:

<input class="input" id="tbxSearchField" name="tbxSearchField" placeholder="Search" type="text" value="">

如果有人使用检查元素选项更改浏览器中元素的 ID,则验证不起作用。

如何为这种情况提供安全保障?有没有办法从客户端阻止这种情况?

【问题讨论】:

  • 如果用户试图绕过你的验证,他们可以删除 JavaScript。您必须验证客户端和服务器端。
  • 仅保护数据客户端确实是不够的 :)

标签: javascript jquery html


【解决方案1】:

有什么办法可以从客户端阻止这种情况

不,没有。客户端验证只是为了方便用户。通过在浏览器开发工具中简单的编辑代码,可以随时更改验证逻辑。

如何为这种情况提供安全保障?

您可以始终在服务器上重新验证来自客户端的数据。

【讨论】:

    【解决方案2】:

    安全验证输入的最佳方式是使用服务器端验证,但使用 jQuery 您可以避免使用idclass 来验证输入:

    var elements=$( "input:text" );
    for(element in elements){
      if(element.val()=="")
      {
       alert("please enter text");
      }
    }
    

    或者你可以使用Javascript querySelector() Method:

    var elements=document.querySelector('input[type="text"]');
    for(element in elements){
      if(element.value=="")
      {
       alert("please enter text");
      }
    }
    

    【讨论】:

      【解决方案3】:

      JavaScript 验证是客户端验证。最终用户可以通过浏览器的 JavaScript 设置轻松解决此问题。

      出于安全目的,最好使用Ajax 验证。

      博文 Form Validation Using Ajax 将有助于更多地使用 Ajax 验证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多