我正在建立一个网站,但我对登录/注册页面上的表格有疑问。我在登录页面上有一些标准的 javascript 验证。我的问题是,如果禁用了 javascript,我应该只禁用登录按钮,还是应该在服务器端代码上保留 PHP 验证?
就安全性而言,哪种方法更好?我打算禁用登录/注册按钮,并且只能通过 javascript 启用它。这样我就可以避免编写已经存在的相同 JavaScript 的 PHP 端验证。这是一种安全的方式吗?
谢谢
我正在建立一个网站,但我对登录/注册页面上的表格有疑问。我在登录页面上有一些标准的 javascript 验证。我的问题是,如果禁用了 javascript,我应该只禁用登录按钮,还是应该在服务器端代码上保留 PHP 验证?
就安全性而言,哪种方法更好?我打算禁用登录/注册按钮,并且只能通过 javascript 启用它。这样我就可以避免编写已经存在的相同 JavaScript 的 PHP 端验证。这是一种安全的方式吗?
谢谢
总的来说,使用 PHP。Javascript 很容易被愚弄和/或完全关闭。那时,您的服务器将获得恶意最终用户先生希望您拥有的任何东西,而您不会阻止它们。
使用 PHP 进行验证,如果您希望它看起来更漂亮,请将 javascript 放在最前面。但总是服务器端验证。
作为一般的经验法则,任何与安全或防止特定用户行为相关的事情,都不要依赖 javascript 或 CSS 来阻止页面上发生的事情。由于可以在浏览器中覆盖或禁用脚本和 css,因此如果它们这样做,您将无法防止该行为。
服务器端是实施预防性安全预防措施的正确位置。
另外,请注意,两者都做对用户体验非常好,但服务器端是防止不需要的数据通过的唯一确定的地方。
每个客户端验证必须在服务器端复制以确保安全。您的客户端脚本可以很容易地被恶意用户替换,以完全绕过您的验证,并且可以使用 Web 调试工具轻松地重新启用按钮。
但是,有时为了方便用户,还需要包括客户端验证。在这种情况下,您必须同时验证服务器端 (PHP) 和客户端 (Javascript)。
客户端验证并不安全,因为它很容易被黑客入侵。它只是为了方便用户。例如,为了响应客户端验证,用户可以在提交表单之前修复错误。这节省了用户的时间,他们欣赏你的网站。
安全验证必须在服务器上进行
PHP 端验证更好。
您必须在服务器上验证您的数据并使用 Javascript 解析它的答案。仅使用 Javascript 添加/删除 HTML 内容并创建更好的用户界面。
始终考虑到这一点:如果用户在他/她的浏览器中禁用 Javascript 会发生什么?