每个人都能看到我的JavaScript验证函数安全吗?

每个人都能看到我的JavaScript验证函数安全吗?,javascript,php,validation,security,Javascript,Php,Validation,Security,在我的注册页面中,我使用JavaScript和PHP进行验证 但是,人们可以通过查看网页的源代码来查看我的JavaScript验证函数。它包含输入字段名称、ID等 那么,任何人都能看到它们安全吗 您所引用的验证函数不会透露任何您似乎需要保密的信息(事实上,恰恰相反,告诉人们哪些是必需的,哪些不是必需的是有用的,并且可能会进入UI)。所以他们是“安全的”,因为他们不泄露任何机密 如果您有使用您想要保密的信息或技术的验证功能,那么您需要将它们移动到服务器,因为它们不会“安全”,因为它们会泄露机密信

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

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


那么,任何人都能看到它们安全吗

您所引用的验证函数不会透露任何您似乎需要保密的信息(事实上,恰恰相反,告诉人们哪些是必需的,哪些不是必需的是有用的,并且可能会进入UI)。所以他们是“安全的”,因为他们不泄露任何机密

如果您有使用您想要保密的信息或技术的验证功能,那么您需要将它们移动到服务器,因为它们不会“安全”,因为它们会泄露机密信息

通过在高级模式下使用激进的minifier/obfuscator,例如googleclosurecompiler,您可以让人们更难理解您的客户端验证函数。但你不能让它成为不可能:如果浏览器可以读取代码,那么使用浏览器的人就可以读取代码



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

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


此外,当您从开发中移动到生产时,您应该考虑和使用JavaScript代码来隐藏您的敏感代码。这样可以节省bandwith的开销,并为应用程序添加额外的安全层。

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

Javascript验证在客户端工作。如果有人禁用了浏览器Javascript,则无法工作。此外,在显示javascript验证时没有太多的安全问题。始终进行服务器端验证以避免任何类型的错误序列或安全措施。简而言之


Java脚本在这里不是一个安全专家,但我认为您实际上不能对此做很多事情,虽然这可能会在客户端验证它们,但我建议您也在服务器端验证它们。只要您不向客户端提供任何“机密”信息,如密码等,就足够了。如果与纯登录(用户名、密码、电子邮件等)相关的验证部分在服务器端完成,并正确转义和存储,则完全可以。您永远不能信任客户端验证,它实际上只是为了提供更好的用户体验。人们可以看到验证逻辑并不“危险”,除非你没有同时验证服务器端(听起来像是这样)。谢谢你提供的信息…:)使用从某个外部文件调用的对象,这样人们就不会知道代码是从哪个文件编写的,js函数那部分的代码实际上是什么?@KeepCoding:好吧,我可能会这么做,只是因为我更喜欢将JavaScript放在自己的文件中。但是,如果它是客户端的,那么它是可见的。不管怎么说,临时观察者可能不是问题所在;我认为,在调试器中逐步检查代码的人,无论它在哪里,都会找到它,这将是一个更大的问题。是的,我正在服务器端部分对这些函数进行完整的验证。mysql_real_escape_string,str_replace,preg_replace So…,感谢您的详细解释…好的,我在PHP代码中对转义进行了完整的验证。。。谢谢……:)没问题:)@Tharindulucky谢谢。。。将了解那些缩小和模糊的方法。。。我以前从未听说过他们。谢谢你让我知道……不客气。我很高兴你现在知道了。这两个人将在发布客户端应用程序时成为您的好友;)