我正在研究保护我正在开发的 javascript 应用程序的方法。该应用程序是一个聊天客户端,它使用 APE(Ajax 推送引擎)作为后端。
目前,任何人都可以访问该页面并向 APE 服务器发出 GET/POST 请求。我只想为注册用户提供聊天客户端,并且我想确保只接受他们的请求。我可以使用 PHP 的用户名/密码身份验证来为用户提供页面。但是一旦他们有了页面,有什么可以阻止他们修改 javascript 或让它落入坏人之手?
这种保护客户端/服务器应用程序的方法看起来很有前途:http ://abhinavsingh.com/blog/2009/12/how-to-add-content-verification-using-hmac-in-php/
我有另一个消息来源说这是 javascript 客户端的理想选择,因为它不依赖于发送私钥。但这怎么可能呢?根据上面的教程,客户端需要提供私钥。这似乎不太安全,因为拥有 javascript 的任何人现在都拥有该用户的私钥。据我了解,它会像这样工作:
- 用户使用用户名和密码登录
- PHP 验证用户名和密码,查找用户的私钥并将其插入到 javascript
- Javascript 提供签名(使用私钥),以及所有 APE 请求的公钥
- APE 将计算的签名与接收到的签名进行比较,并决定是否处理请求。
如果 javascript 应用程序需要知道私钥,这如何安全?
谢谢您的帮助!