向客户提供个性化的JavaScript代码

时间:2016-02-25 13:05:47

标签: javascript laravel socket.io

首先,我试图在不同的问题和论坛中寻找答案,但我很难找到正确的搜索关键字,所以我没有发现任何相关的内容。

基本上,我已经开始为网站开发一个简单的实时聊天小部件实现,类似于olarkliveChat等。因为,我将使用Socket.IO,我是寻找一种简单的方法来向潜在客户提供javascript代码(这可能很不是技术娴熟)。因此,我们的想法是只使用一个简单的<script>标记,该标记可以动态创建另一个脚本标记,其中源指向我的服务器,或者只是具有正确源的脚本标记。

我遇到的问题是服务器对该请求的响应。在测试实现中,我添加了一个脚本标记,它调用服务器,服务器使用字符串中的javascript代码进行响应,我发现这是一种非常粗略的方法。我不能只提供简单的javascript文件的原因是,因为它需要个性化,所以我可以跟踪客户端连接的位置,以便获得正确的“代理”(网站管理员) 。我可能会为每个用户创建单独的文件,但我不确定它的可维护性和高效性。

所以我的问题是,如何以高效安全的方式提供这种个性化的JavaScript代码?我使用Laravel作为后端,如果这有任何区别的话。

2 个答案:

答案 0 :(得分:1)

您只能将没有<script>标记的javascript传输到客户端,然后使用eval()在那里运行代码。

答案 1 :(得分:1)

  

在测试实现中,我添加了一个脚本标签,它调用服务器,服务器用字符串中的javascript代码进行响应,我发现这是一种非常粗暴的方法。

如果它能满足您的需求,这是一个很好的解决方案。

如果感觉粗糙,有一些东西可以帮助保持清洁。将您的javascript保存在单独的文件中,并使用file_get_contents从该文件中读取。如果您需要使用占位符对其进行个性化设置,则可以添加%s并使用sprintf弹出个性化设置。

有一些相当大的广告网络正在以这种方式提供javascript,所以我不相信这种方法存在任何本质上的错误。

就安全性而言,除了确保通过HTTPS提供所有内容之外,我不确定您能做些什么。我希望不需要通过get变量传递敏感信息。