Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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_Security_Authentication_Client Side Scripting - Fatal编程技术网

Javascript 不使用服务器进行身份验证

Javascript 不使用服务器进行身份验证,javascript,security,authentication,client-side-scripting,Javascript,Security,Authentication,Client Side Scripting,我正在寻找一些方法来验证一个用户的身份,而不需要经常访问服务器。 在客户端对用户进行身份验证的任何半安全方式都是可以接受的 我想在js文件中存储一些加密的秘密,然后只有拥有正确代码的用户才能解密,正确的代码可以输入或存储在cookie或其他东西中。 听起来不错,或者有其他想法吗?也许你可以存储一个密码的散列并加密敏感的应用程序JS源代码,以便在用户使用正确的密钥进行“身份验证”时对其进行评估 请参阅关于谷歌javascript处理方法的文章。使用加密的javascript字符串源代码,客户端安全

我正在寻找一些方法来验证一个用户的身份,而不需要经常访问服务器。 在客户端对用户进行身份验证的任何半安全方式都是可以接受的

我想在js文件中存储一些加密的秘密,然后只有拥有正确代码的用户才能解密,正确的代码可以输入或存储在cookie或其他东西中。
听起来不错,或者有其他想法吗?

也许你可以存储一个密码的散列并加密敏感的应用程序JS源代码,以便在用户使用正确的密钥进行“身份验证”时对其进行评估


请参阅关于谷歌javascript处理方法的文章。使用加密的javascript字符串源代码,客户端安全吗?

通过客户端javascript查看oauth。 在谷歌上搜索“仅限oauth客户端”

例如:

我想在js文件中存储一些加密的秘密,然后只有拥有正确代码的用户才能解密,正确的代码可以输入或存储在cookie或其他东西中

你所要求的肯定是可能的,但我不确定它是否真的对你有用

您需要使用密钥派生函数,如(“基于密码的密钥派生函数2”)。用户输入密码,然后KDF将密码转换为密钥。然后,使用密钥来操作一个强对称密码,如AES(并确保使用安全的操作模式,如CBC)。这种方法相当安全,但仍然容易受到密钥记录器(操作系统级和浏览器级)和内存状态检查的攻击

这里重要的一点是,用户必须输入一个密码,以便首先加密机密。您不能先向用户发送一个秘密,然后再要求用户输入密码。用户可以使用密码加密消息,然后让系统在以后访问时需要相同的密码

或者,您可以自己选择密码,生成密钥和加密数据,然后将您选择的密码(以及加密数据)发送给用户,以便安全地记住或存储


实际上,它是一个支持AES和PBKDF2的JavaScript实现。

问题在于用户可以在客户端操作任何东西。进行客户端身份验证永远不会安全。如果这些cookie被盗并放在另一台机器上会发生什么?没有服务器的身份验证很容易。问题是“您将如何处理这种身份验证”。如果你打算让用户在客户端身份验证后访问你的服务器端资源,那你的日子就不好过了。如果你给用户只在客户端进行身份验证的能力,任何半熟练的程序员都可以绕过任何所谓的“安全性”。如果这种安全性对你的应用来说还不够好,那么你怎么做就无关紧要了。最佳实践是说“不要这样做”。如果你决心继续前进,那么选择一种让你感觉足够好的方式,让你觉得合适。@CharlieKilian是的。他不妨把它用红色文本粘贴在一个固定在页面中间的框中真正的问题是,如果只是半安全的,为什么还要强制用户进行身份验证?这在任何方式、形状或形式上都是不安全的。根据定义,客户端可以读取和执行所有Javascript。如果你加密Javascript,使客户端实际上无法读取它,它将无法执行,因此毫无用处。我从来没有说过Javascript将保持加密,只是说只有正确的用户密钥才能解密它(请参阅我提到的文章中的技术)。您也可以使用访问控制,而不向其他用户提供访问控制。我回答了这部分问题:“我想在js文件中存储一些加密的秘密,这样只有拥有正确代码的用户才能解密”。从来没有说过这是一个好的做法。。。(或完全有用)