一、 引言
BS客户端是很多公司产品的重要载体,很多产品,都是基于浏览器客户端(BS客户端)的。BS客户端的优点是简洁高效,但会存在明文传播,无法防止复制等一系列问题。本文试图提供一系列解决方案,从而尽可能减少BS客户端的明文传播、直接进行复制的问题。
二、 几个要点
BS客户端安全使用,目前有几个要点:
1) 网络传输用密文传播;
2) 登录状态验证,防止登录过期;
3) 网页界面使用防复制粘贴命令。
同时,要说明的是,由于BS客户端(浏览器)自身的特点,本解决方案并不能保证安全,保证用户完全不进行复制粘贴。增加了一定的安全防范,即增加了一层保护。相关的安全保护是必要的。
三、 几个要点的实现
BS客户端实现相关要点的流程如下:
1) 网络传输密文传播
当前网络前后台传播消息主要是HTTP传播,但HTTP本身是明文传播的,这会让部分信息被网络截获并直接抓取。
可行的解决方案是,使用加密协议,目前可行的解决方案为:
1)HTTPS传输;
2)自定义文本加密规则。
2) 登录用户验证
登录用户验证,可以避免HTTP协议是无状态的协议造成的登录状态不明确。目前可行的解决方案为:
1)Cookie验证;
2) Session 登录;
3)Token 登录;
4)SSO 单点登录;
5)OAuth 第三方登录。
目前比较容易实行的是Cookie和Token登录验证。
3) 网页界面防止复制粘贴
无论传输有多保密,在客户端都是需要解密的,最终通过明文展示。在网页上,可以添加一些必要措施。如防止网页的选择、复制。
可以在网页加载阶段,加上防止选择,防止复制。相关函数样例如下:
export default {
created() {
this.$nextTick(() => {
// 禁用右键
document.oncontextmenu = new Function("event.returnValue=false");
// 禁用选择
document.onselectstart = new Function("event.returnValue=false");
});
},
//其他函数
}
四、 依然存在的问题
无论选择何种防止复制粘贴的方式,都不能完全防止网页被复制。甚至,即使防止复制粘贴存在,也不能防止计算机被截图后进行文字识别。但安全措施的增加,必然会增加使用者直接进行数据破坏的难度,增加整个软件的安全性。对于软件来说,使用一定的安全防范措施,是很有必要的。