从浏览器视图源加密值

时间:2011-06-04 08:10:40

标签: php javascript html

有没有办法可以加密或加扰某个文本,因此无法从浏览器查看源。例如,如果我在视图源html中显示视频ID 117,并且我想加密它或使其难以阅读,这是否可行。

4 个答案:

答案 0 :(得分:4)

由于浏览器必须能够正确呈现页面,因此源代码将始终以某种方式提供。

然而,您可以模糊代码。搜索 html php obfuscation ,你会发现很好的链接。以下是一些:


以下代码为例:

<html>
<body>
<a href="videolink.php?id=117">link</a>
</body>
</html>

可以加密/混淆为

<script language="JavaScript" type="text/javascript">
// Copyright © 2005 Voormedia - WWW.VOORMEDIA.COM
var i,y,x="3c68746d6c3e0d0a3c626f64793e0d0a3c6120687265663d22766964656f6c696e6b2e7068703f69643d313137223e6c696e6b3c2f613e0d0a3c2f626f64793e0d0a3c2f68746d6c3e";y='';for(i=0;i<x.length;i+=2){y+=unescape('%'+x.substr(i,2));}document.write(y);
</script>

答案 1 :(得分:4)

如果您希望视频链接无用,除非您刚刚返回到客户端的页面上下文中,您可以使用服务器端代码执行某些操作。

通常情况是专门为页面生成的一次性或有限持续时间的ID。例如,ab23jjgk23098jajzklwravmzzxwrpo2q3476as而不是117。在服务器上,您有一个表将这些一次性/有限时间ID映射到真实ID。在表格中,您还可以将ID链接到页面请求的IP地址,然后仅在视频请求来自同一IP地址时才考虑ID。重要的是,的ID实际上包含视频ID(模糊或未模糊),因此服务器端表格,并且它们实际上是随机的。

我说“表”,但当然它不一定是数据库表。它可以是任何可以存储键/值对的内容,例如memcached


根据您的评论

更新

如果没有服务器端映射(数据库,会话,memcached等),您所能做的就是进行一些模糊处理,对于任何半技术人员而言,它都很容易破解。如果您输出的是一个URL(在链接中,在object标签中等),您可以使用URL编码使其难以阅读,例如:

<a href='video.php?%6e%6f%6e%73%65%6e%73%65=%66%6f%6f&%69%64=%31%31%37&%72%75%62%62%69%73%68=%62%61%72'>video</a>

...点击后,会使用参数video.phpnonsense=fooid=117调用您的rubbish=bar文件(这是查询字符串中编码的内容,使用百分比编码的实体)。但同样,虽然它可能会阻止非技术人员,但技术人员不会被吓到。

答案 2 :(得分:1)

除了tj的答案之外,您还可以使用会话值将用户引导至视频,或者甚至使用有限持续时间的cookie来存储一次性ID,该ID在id出现时到期,因此用户可以返回视频,如果他们不小心导航它。

答案 3 :(得分:1)

也许制作一个小的Flash应用程序链接通过javascript(请参阅ExternalInterface)调用方法,该方法解码传递的链接数据并导航到。仍然可以逆转,但更难以使用浏览器DOM Inspector。

你也可以使用一些强大的加密技术来加密链接,比如Blowfish和一个只有flash应用程序才知道的密钥,但实际上由你决定你想要它的安全性,并且一旦这个密钥被反转了flash swf任何人都可以解码链接数据。