如何防止通过JavaScript访问我的网站

时间:2019-06-02 08:55:28

标签: javascript

我想知道是否可以创建一个JavaScript函数来检查条件,并且如果该条件为True,那么我拒绝访问代码吗?现在,我正在检查用户代理,如果它不符合给定的条件,则删除HTML标记。但是,如果他们转到“网络”标签,则仍然可以看到我的代码的GET请求和响应。

这是一个在localhost上运行的网站,因为它是一个Electron应用程序。

我想也许我可以发出403错误,但是我不确定是否可以通过JS实现。

谢谢

1 个答案:

答案 0 :(得分:0)

在Electron应用程序中,您的代码仍然是JavaScript源代码。您可以对其进行混淆和/或将其放入ASAR档案中,以使其更难阅读和完善,但是该代码仍然存在,并且任何想尽一切努力的人都可以访问。 (例如,如果您使用VS Code,则可以在resources/app/out目录及其子目录中查看源代码。)

如果您愿意做更多的工作,则可以使查找和理解源变得更加困难。 Node.js使用的JavaScript引擎V8具有称为startup snapshots的功能:您运行V8并使其加载脚本(混淆的代码),进行堆快照(在GC之后),并将其写入文件。然后,您在加载V8时指定堆快照,它只是在快照中传输而不是读取和解析代码。电子上方的Atom team have done this。在他们的案例中,动机是启动性能,而不是隐藏源代码,但其效果是使您的代码更难找到。

请注意,我更努力地说,不是没有可能。最终,如果您希望代码在最终用户的计算机上执行,那么最终用户将可以访问该代码。即使在已编译的应用程序中也是如此,尽管当然在这种情况下,许多组织信息可以帮助人们理解代码在编译时丢失的情况,而混淆代码的情况则更少。 (但是,好的混淆器会使代码对人类非常不透明。)