Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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时是否需要服务器端验证?_Javascript_Validation_Web Applications_Client Side_User Input - Fatal编程技术网

强制使用javascript时是否需要服务器端验证?

强制使用javascript时是否需要服务器端验证?,javascript,validation,web-applications,client-side,user-input,Javascript,Validation,Web Applications,Client Side,User Input,我知道用户可以禁用Javascript 我正在开发一个web应用程序,每当用户提交表单(以及客户端验证)时,都会使用javascript修改一个隐藏字段,并在服务器端进行检查,以查看用户是否禁用了js。如果禁用js,则会通知用户启用javascript 我是否需要在服务器端再次验证输入?(如果是,为什么?) 在这种情况下,有没有办法绕过客户端验证 类似地,对于基于ajax的登录,我们是否需要在服务器端再次检查用户凭据 您不应该信任任何客户端输入,并且始终在服务器上进行验证。 客户端验证只是为了方

我知道用户可以禁用Javascript

我正在开发一个web应用程序,每当用户提交表单(以及客户端验证)时,都会使用javascript修改一个隐藏字段,并在服务器端进行检查,以查看用户是否禁用了js。如果禁用js,则会通知用户启用javascript

  • 我是否需要在服务器端再次验证输入?(如果是,为什么?)
  • 在这种情况下,有没有办法绕过客户端验证
  • 类似地,对于基于ajax的登录,我们是否需要在服务器端再次检查用户凭据

  • 您不应该信任任何客户端输入,并且始终在服务器上进行验证。

    客户端验证只是为了方便用户。

    您不应该信任任何客户端输入,而应该始终在服务器上进行验证。
    客户端验证只是为了方便用户

    我是否需要在服务器端再次验证输入

    对。不要偷懒。甚至不能保证请求来自浏览器,更不用说启用了JavaScript的浏览器了。浏览器并不是发出HTTP请求的唯一方式,HTTP服务器——顾名思义——服务于HTTP客户端,而不仅仅是浏览器。验证的存在是为了保护您、您的系统、您宝贵的数据以及系统的其他用户。依赖客户端验证假定客户端是合作的、非恶意的,但验证的全部目的是提供保护,使其免受不合作或恶意客户端的攻击

    在这种情况下,有没有办法绕过客户端验证

    当然。请求可以“手动”构造,使服务器误以为隐藏字段是用JavaScript操纵的,从而误以为启用了JS。隐藏字段对安全没有任何作用

    我是否需要在服务器端再次验证输入

    对。不要偷懒。甚至不能保证请求来自浏览器,更不用说启用了JavaScript的浏览器了。浏览器并不是发出HTTP请求的唯一方式,HTTP服务器——顾名思义——服务于HTTP客户端,而不仅仅是浏览器。验证的存在是为了保护您、您的系统、您宝贵的数据以及系统的其他用户。依赖客户端验证假定客户端是合作的、非恶意的,但验证的全部目的是提供保护,使其免受不合作或恶意客户端的攻击

    在这种情况下,有没有办法绕过客户端验证


    当然。请求可以“手动”构造,使服务器误以为隐藏字段是用JavaScript操纵的,从而误以为启用了JS。隐藏字段对安全没有任何作用

    您需要在服务器端再次验证输入。不要相信客户的任何意见。因为他们可以在没有你表格的情况下发布任何数据


    客户端验证只针对用户体验。

    您需要在服务器端再次验证输入。不要相信客户的任何意见。因为他们可以在没有你表格的情况下发布任何数据

    客户端验证只针对用户体验