如何阻止用户从浏览器控制台更改脚本

时间:2016-02-05 07:45:10

标签: javascript php jquery html css

您好我想停止用户从浏览器控制台更改我的脚本。

例如: 在html中,如果我有下面的div

<div id="demo">
Hi..
</div>

和jQuery

$('#demo').hide();

但仍然用户可以检查此页面的元素,他们从控制台更改脚本或编码,他们可以查看具有ID demo的div。所以请告诉我如何阻止用户更改我的代码,或者即使他们更改它不应该显示div。

3 个答案:

答案 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

希望您进一步实现目标。祝你好运