您好我想停止用户从浏览器控制台更改我的脚本。
例如: 在html中,如果我有下面的div
<div id="demo">
Hi..
</div>
和jQuery
$('#demo').hide();
但仍然用户可以检查此页面的元素,他们从控制台更改脚本或编码,他们可以查看具有ID demo的div。所以请告诉我如何阻止用户更改我的代码,或者即使他们更改它不应该显示div。
答案 0 :(得分:2)
将您的信息页发送给用户后,您无法阻止他执行任何操作。即使使用缩小的js,他也能够强制显示元素。你所能做的只是在发送页面之前将它隐藏在php端
例如:
<?php
session_start();
if (!empty($_GET['demo']) && $_GET['demo'] == "whatever") $_SESSION['show_demo'] = true;
?>
<?php if(isset($_SESSION['show_demo']) && $_SESSION['show_demo'] == true): ?>
<div id="demo">
Hello World
</div>
<?php endif;?>
<a href="?demo=whatever">Click here to show demo</a>
答案 1 :(得分:1)
在这里,您可以阅读一篇包含一些有用词语的文章:How to hide a JS Code
另外,您可以使用obfuscation
您只需要意识到您无法隐藏用户的JS代码,因为浏览器应该下载并执行。如果你想加密它,你应该向浏览器发送一个用户也可以获得的传递。
想象一下:我告诉你1,你应该告诉我同样的事情。如果我告诉你2,你会告诉我什么?
而且......这是......所有程序员的问题。所有程序员都希望隐藏自己的代码:)。只是......相信我。它是。
还有一个建议就是试试这个:Online Obfuscator
如果您想使用PHP代码执行此操作,请尝试以下操作:
// action.php
<?php
if ( !isset($_POST['show']) ) {
die('HACKER !');
} else {
echo '
<html>
<head>
<title>Main Page</title>
<body>
<div id="demo">DEMO</div>
<br>
<form action="action.php">
<input name="show" style="display: none;">
<input type="submit" value="Try me !"/>
</form>
</body>
</html>';
}
?>
这些文件应位于同一文件夹中。
// index.html
<html>
<head>
<title>Main Page</title>
</head>
<body>
<form action="action.php">
<input name="show" style="display: none;">
<input type="submit" value="Try me !"/>
</form>
</body>
</html>
祝你好运:)
答案 2 :(得分:1)
我最近正在研究这个问题。它可能不是最佳解决方案,但php有一个内置函数,名为 htmlspecialchars
有关进一步说明,请参阅此处:
http://php.net/manual/en/function.htmlspecialchars.php
当然你的标签说php,但我目前的代码中没有看到任何PHP代码。我还可以推荐这两个链接,以实现与不同编程语言相同的效果:
http://www.toao.net/32-my-htmlspecialchars-function-for-javascript
希望您进一步实现目标。祝你好运