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


how to stop user changing scripts from console of browser

嗨,我想阻止用户从浏览器控制台更改我的脚本。

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

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

和 jQuery

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

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

一旦你的页面被发送给用户,你就无法阻止他做任何事情。即使使用缩小的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>

在这里,您可以阅读一篇包含一些有用单词的文章: 如何隐藏JS代码

此外,您可以使用混淆

您只需要意识到您无法对用户隐藏JS代码,因为浏览器应该下载并执行它。如果你想加密它,你应该向浏览器发送一个通行证,用户也会得到。

想象一下:我告诉你1,你应该告诉我同样的事情。如果我告诉你 2 你会告诉我什么?

和。。。在这里。。。所有程序员的问题。所有程序员都希望隐藏自己的代码:)。只。。。相信我。是的。

还有一个建议是尝试这个:在线混淆器

如果你想用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>

祝你好运:)

我最近在做这方面的研究。它可能不是最佳解决方案,但php有一个内置函数,称为htmlspecialchars

有关进一步说明,请参阅此处:

http://php.net/manual/en/function.htmlspecialchars.php

当然,您的标签上写着php,但是我目前在您当前的代码中没有看到任何php代码。我还可以推荐的是这两个链接,以使用不同的编程语言实现相同的效果:

http://www.toao.net/32-my-htmlspecialchars-function-for-javascript

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