如何隐藏html源代码?

时间:2015-11-13 17:22:50

标签: javascript html css

我有一个像这样的结构的网络应用程序。

<div id="public">
//....
</div>
<div id="admin">
//....
</div>

任何人都可以看到“公共”div。 “admin”div具有css display:none,直到管理员用户登录,然后css变为display:inline,并且变为可见。 admin div包含一些可能影响我们数据库的函数,因此保持其安全非常重要。

我意识到我可以简单地打开chrome dev控制台,找到admin div css,并将显示更改为内联,然后显示admin div。我该如何防止这种情况?或者,我怎样才能安全地隐藏管理员div,直到我可以验证管理员登录?

理想情况下,我想将此网站保留为单个html页面,但如果必须,我愿意改变它。我想到的一个解决方案是将admin html代码保留在服务器上,并在检测到成功登录时请求它。

有什么想法吗?

编辑:我正在使用Tomcat作为服务器,所以servlets。

2 个答案:

答案 0 :(得分:1)

如果你使用的是php或者你需要的任何语言,如果你的代码出现条件,那么只有设置了$ admin变量才能看到它

if($admin){
   <div id="admin">
//....
</div>
}

答案 1 :(得分:-1)

您可以使用AJAX调用来请求管理员代码,然后将Web服务器设置为仅在以管理员身份登录时提供代码。

dov.amir的答案中复制/改编的代码示例(还有一个jQuery示例):

<script type="text/javascript">
function loadXMLDoc() {
    var xmlhttp;

    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
           if(xmlhttp.status == 200){
               document.getElementById("admin").innerHTML = xmlhttp.responseText;
           }
           else if(xmlhttp.status == 400) {
              alert('There was an error 400')
           }
           else {
               alert('something else other than 200 was returned')
           }
        }
    }

    xmlhttp.open("GET", "AdminHtml.txt", true);     //Change to the address of your code
    xmlhttp.send();
}
</script>

您需要在Web服务器上设置权限。