3 个回答

使用https

这是经典的”防止中间人窃听问题“: 如何防止WIFI网关, 路由器, 网卡设备等中间网桥设备窃听私密数据。

解决方案也很经典:加密。
以下用对称加密说明:

在访问页面的时候,给他一个cookie,以及存好对应的秘钥$secretKey

<form>
<input type="hidden" id="secret_key" value={{$secretKey}}>
账号<input name="username" type="text">
密码<input name="password" type="password">
</form>

渲染这个页面的时候,使用模板变量把$secretKey给赋值上。
提交的密码就用AES加密, 秘钥为$secretKey, 然后服务端进行解析后,再对比密码。

但是网络安全,没有绝对安全,有的中间人会想办法嗅探$secretKey,我们要做的就是把$secretKey的流程做的不容易被抓取,但是不变的核心思想就是加密传输,服务端界面,包括ssl也是这个原理。

从防止中间人攻击来说,只需要 HTTPS 就够了。

如果你要防止用户自己抓包从 Network 看到,可以与后端来进行商议,使用非对称加密或者非对称加密 + 对称加密的方式对用户提交的数据进行加密,这样别人抓包看到的就是加密后的数据了,但是这样是没有意义的,因为不论哪种方式,你的密钥都会在网络传输或者写在客户端,尤其是网页端,很容易就能被截获。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题