这就是我网站中的工作原理a.com
,用户访问我的网站,然后我b.com
使用我的帐户与另一个网站中的人交谈,生成链接b.com/somelink
并将用户重定向到该链接。
这是问题所在,该地址b.com/somelink
包含一些我想向访问者隐藏的私人信息...因为我无法控制该网站,所以我无法做到这一点。
因此,我认为最好的选择是浏览器扩展,用户必须在重定向到b.com之前安装扩展。
所以这是我的简单扩展名:
manifest.json
{
"name": "extname",
"version": "1.0",
"description": "extnameExtension!",
"manifest_version": 2,
"permissions": [
"tabs", "http://*/*", "https://*/*" , "webNavigation"
] ,
"content_scripts": [
{
"matches": ["*://b.com/*"],
"js": ["contentscript.js"],
"run_at": "document_start"
}
]
}
contentscript.js
function fireOnReady() {
document.getElementById('personal-info').innerHTML = 'some dummy data';
}
if (document.readyState === 'complete') {
fireOnReady();
} else {
document.addEventListener("DOMContentLoaded", fireOnReady);
}
这工作正常,但我有两个问题:
1-用户可能会禁用该扩展名并刷新页面b.com/somelink
并看到我的个人信息....所以我的解决方案是,b.com
如果他们删除了我的扩展名,则关闭浏览器选项卡的打开...有什么办法吗?(仅当他们从我的网站重定向到b.com时,此链接才可用,因此他们不能仅将链接复制/粘贴到新标签页/浏览器中)
2-在我自己的网站中,如何将他们重定向到b.com之前确保他们已安装扩展程序?
**请不要谈论我解释过的场景或其他解决方案,或者...我知道这听起来可能很奇怪,但这并不是针对公共用户,而是专门的特殊群体,如果有必要,他们将安装扩展程序,我很想知道即使找到其他解决方案,如何使用代码和扩展名也可以做到这一点**
您建议的是将用户重定向到包含私人信息的页面,然后在您的扩展程序检测到页面已加载时,从DOM中清除该信息。不管您问关于扩展的两个问题如何,我都不会使用您提出的方法,因为:
私人信息仍会发送到用户的浏览器,并且用户仍然可以访问。正如iPirat提到的那样,有可能在几乎所有浏览器中使用开发人员的工具来查看浏览器接收的数据。网络标签将包含对该页面的请求,并显示发送到浏览器的原始HTML,并且您想隐藏的信息将在此处显示。没有解决此问题的方法,就是首先不要发送信息。
扩展程序中的故障可能会泄露敏感数据。您说您不控制显示私人信息的站点,这意味着您无法控制personal-info
包含私人信息的元素的ID。如果该端的设计者决定将ID更改为personal-user-info
,则您的扩展失败,并且私有数据可见。
而且这与代码中的错误无关。您在某个地方输入错误,扩展程序无法运行,并且敏感信息对用户可见。
我会重新考虑您的整个方法。确保私人信息永远不会被用户掌握的一种常用方法是,让前端代码b.com
通过第三方服务器()通过站点上的服务器()获取所需的信息a.com
。您的服务器可以从中获取信息,b.com
并且仅包含必须传递给用户的信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句