Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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 submit()是否停止了php验证的必要性?_Javascript_Php_Security_Validation_Submit - Fatal编程技术网

javascript submit()是否停止了php验证的必要性?

javascript submit()是否停止了php验证的必要性?,javascript,php,security,validation,submit,Javascript,Php,Security,Validation,Submit,如果我使用javascriptsubmit()方法提交表单,表单将只在启用javascript的情况下发布,但我希望确保这是真的。 所以我的问题是,我是否需要进行php验证,因为这可能是一些我可能不知道的漏洞?这就足够了吗?试着在浏览器中禁用javascript并提交表单。你可以看到javascript验证是否有效,然后你就会明白服务器端验证的必要性 Javascript将在客户端执行,永远不会依赖于客户端。但是php在服务器上执行,不可能在服务器上修改php。但是javascript是。如果您

如果我使用javascript
submit()
方法提交表单,表单将只在启用javascript的情况下发布,但我希望确保这是真的。
所以我的问题是,我是否需要进行php验证,因为这可能是一些我可能不知道的漏洞?这就足够了吗?

试着在浏览器中禁用javascript并提交表单。你可以看到javascript验证是否有效,然后你就会明白服务器端验证的必要性

Javascript将在客户端执行,永远不会依赖于客户端。但是php在服务器上执行,不可能在服务器上修改php。但是javascript是。如果您在浏览器上禁用js并进行表单子匹配,那么您可以看到javascript代码都不起作用。但是如果您编写了服务器端验证,那么它就会起作用

另请参考:-
永远不要信任客户端。

尝试在浏览器中禁用javascript并提交表单。您可以看到javascript验证是否有效,然后了解服务器端验证的必要性

Javascript将在客户端执行,永远不会依赖于客户端。但是php在服务器上执行,不可能在服务器上修改php。但是javascript是。如果您在浏览器上禁用js并进行表单子匹配,那么您可以看到javascript代码都不起作用。但是如果您编写了服务器端验证,那么它就会起作用

另请参考:-
永远不要信任客户端。始终始终验证后端的任何输入

任何js验证都可以绕过,数据可能会被强制发布

验证输入时,您可能需要:

  • 字符串中的转义特殊符号(使用诸如real\u Escape\u string之类的函数)
  • 将数据强制转换为其他数据类型
  • 执行一些清洁操作(修剪、移除标签等)

始终始终验证后端上的任何输入

任何js验证都可以绕过,数据可能会被强制发布

验证输入时,您可能需要:

  • 字符串中的转义特殊符号(使用诸如real\u Escape\u string之类的函数)
  • 将数据强制转换为其他数据类型
  • 执行一些清洁操作(修剪、移除标签等)
所以我的问题是,我是否需要进行php验证,因为这可能是一些我可能不知道的漏洞

是的,你知道。你不能盲目相信来自客户的任何东西,它可能是完全被欺骗的

我可以即兴模仿你的描述:

  • 一个bookmarklet,它更改表单值,然后进行提交
  • 使用curl或类似工具发送HTTP请求
  • 发送前使用JavaScript控制台修改值
我肯定还有其他人

下面是一个bookmarklet有多简单的示例:

javascript:(function(){var f=document.forms[0],e=f&&f.elements[0];if(e){e.value="My nefarious value";f.submit();}})();
它将页面第一个表单上的第一个元素的值设置为“我的恶意值”,并提交表单

所以我的问题是,我是否需要进行php验证,因为这可能是一些我可能不知道的漏洞

是的,你知道。你不能盲目相信来自客户的任何东西,它可能是完全被欺骗的

我可以即兴模仿你的描述:

  • 一个bookmarklet,它更改表单值,然后进行提交
  • 使用curl或类似工具发送HTTP请求
  • 发送前使用JavaScript控制台修改值
我肯定还有其他人

下面是一个bookmarklet有多简单的示例:

javascript:(function(){var f=document.forms[0],e=f&&f.elements[0];if(e){e.value="My nefarious value";f.submit();}})();
这将页面第一个表单上的第一个元素的值设置为“我的恶意值”,并提交表单。

据我所知,submit()方法提交表单(与单击提交按钮相同)(src w3c),除非您编写一些javascript验证代码,否则它与验证自然无关

现在您必须知道,Javascript只会进行客户端验证。所以,如果在某些浏览器中未启用Javascript会怎么样

因此,进行服务器端验证总是最好的办法。

但这并不意味着我们不应该进行客户端验证:

1:客户端验证减少了服务器的大量负担。 例如,如果用户在表单中填写了错误的输入,他/她将立即得到通知

2:它还使您的web应用程序更具交互性

因此,您应该同时使用客户端和服务器端验证。但决不能只依赖客户端。

据我所知,submit()方法提交表单(与单击submit按钮相同)(src w3c),除非您编写一些javascript验证代码,否则它与验证无关

现在您必须知道,Javascript只会进行客户端验证。所以,如果在某些浏览器中未启用Javascript会怎么样

因此,进行服务器端验证总是最好的办法。

但这并不意味着我们不应该进行客户端验证:

1:客户端验证减少了服务器的大量负担。 例如,如果用户在表单中填写了错误的输入,他/她将立即得到通知

2:它还使您的web应用程序更具交互性


因此,您应该同时使用客户端和服务器端验证。但决不能只依赖客户端。

您在客户端验证只是为了更方便用户(无需重新加载整个页面)和带宽友好(为无效数据保存客户端-服务器往返)。差不多就是这样

对于应用程序的安全性和数据完整性来说,真正重要的是服务器端验证,所以千万不要跳过它。可以跳过客户端而不发生任何可怕的事情,但决不能跳过服务器端