【问题标题】:Is it safe that everybody can see my JavaScript validation functions?每个人都可以看到我的 JavaScript 验证函数是否安全?
【发布时间】:2023-04-09 06:13:01
【问题描述】:

在我的注册页面中,我使用 JavaScript 和 PHP 进行验证。

但是,人们可以通过查看网页的源代码来查看我的 JavaScript 验证函数。它包含输入字段名称、ID 等。

那么,任何人都可以看到它们是否安全?

【问题讨论】:

  • 这里不是安全专家,但我认为您实际上无法做很多事情,虽然这可能会验证客户端,但我建议您也验证服务器端。
  • 只要您不向客户端提供任何“机密”信息,例如密码等,就足够了。如果与纯登录相关的验证部分(用户名、密码、电子邮件等)在 SERVER SIDE 完成并正确转义和存储,则完全没问题。
  • 你永远不能相信客户端验证,它真的只是为了提供更好的用户体验。人们可以看到验证逻辑并不是“危险的”,除非您没有同时验证服务器端,这听起来像您一样。
  • 感谢您的信息... :)

标签: javascript php validation security


【解决方案1】:

Javascript 验证在客户端工作。如果有人禁用了他的浏览器 Javascript。它不会工作。此外,显示 javascript 验证没有太多安全问题。始终进行服务器端验证以避免任何类型的错误后果或安全措施。很简单

Java 脚本 PHP

【讨论】:

    【解决方案2】:

    JavaScript 验证部分并不是一个真正的安全问题,因为如果用户通过了它,就不能修改或滥用任何东西,但是你应该小心的 PHP 验证,如果被泄露的话,它可以允许用户访问你的数据库(当然,如果您的表单与您的数据库链接)。

    【讨论】:

    • 好的,我在 PHP 代码中进行了转义的完整验证...谢谢... :)
    • 没有问题 :) @TharinduLucky
    【解决方案3】:

    这是安全的,因为您的代码反映了您页面上的操作。当您在代码上定义最大长度时,您可以通过提供一些 UI 和消息向用户展示这一点。这里没有什么秘密,所以没关系。

    此外,当您从开发转向生产时,您应该考虑使用您的 JavaScript 代码 minifyingobfuscating 以隐藏您的敏感代码,以免被祈祷的眼睛看到。这样您可以节省带宽,并为您的应用程序添加额外的安全层。

    【讨论】:

    • 谢谢...将会看到那些缩小和混淆的方法...以前从未听说过它们。感谢您让我知道...
    • 不客气。我很高兴你现在知道他们了。这两个将成为您发布客户端应用程序时的好朋友;)
    【解决方案4】:

    您引用的验证功能不会透露任何您似乎需要保密的信息(实际上恰恰相反,告诉人们什么是必需的和不需要的是有用的,并且可以通过用户界面)。所以它们是“安全的”,因为它们不会泄露任何机密信息。

    如果您的验证功能使用了您想保密的信息或技术,则需要将它们移至服务器,因为它们会泄露机密信息,因此并不“安全”。

    您可以通过使用激进的压缩器/混淆器(例如高级模式下的 Google Closure Compiler)让人们更难了解您的客户端验证功能。但你不能让它成为不可能:如果浏览器可以读取代码,那么使用浏览器的人就可以读取代码。


    因为我们谈论的是客户端验证,所以通常的警告是:即使您正在验证客户端,您仍然必须验证服务器端。用户可以绕过您的客户端代码并发送无效信息。

    【讨论】:

    • 如何使用从某个外部文件调用的对象,这样人们就不会知道代码是从哪个文件编写的,以及 js 函数那部分的代码实际上是什么?
    • @KeepCoding:好吧,我可能还是会这样做,只是因为我更喜欢在自己的文件中关闭 JavaScript。但同样,如果它是客户端,它是可见的。无论如何,随便的观察者可能都不是问题。我认为那些将在调试器中单步调试您的代码的人,无论它在哪里都能找到它,这将是更大的问题。
    • 是的,我正在服务器端部分对这些功能进行完整验证。 mysql_real_escape_string, str_replace, preg_replace 所以....谢谢详细的解释...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 2011-02-28
    • 1970-01-01
    相关资源
    最近更新 更多