查看view-source时如何加载不同的代码:

时间:2017-08-01 16:39:30

标签: javascript php

我想检测view-source:并为其添加不同的html。 我尝试过使用它,但它不能正常工作

 $url= $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
 $needle = "view-source:";
 if (strpos($url,$needle)) { echo "You can not see me";

 }
 else {}

2 个答案:

答案 0 :(得分:0)

这根本不可能。 view-source:只是浏览器添加到网址的URI-scheme知道他必须在此特定窗口中执行的操作。此部分不会被发送到网络服务器以加载此特定网站。

答案 1 :(得分:0)

这不是“严格可行”的,但是根据情况,有多种方法可以阻止它-无论您读过多少次“不可能”。

如果您将页面用作通行证,则可以通过使用$_SERVER['HTTP_REFERER']阻止查看源代码。

示例:page1.php将数据发布到page2.php,这秘密地添加了更多数据以发布并使用javascript从page2.php自动发布到page3.php

在这种情况下,您可以执行以下操作来隐藏page2.php的来源:

if($_SERVER['HTTP_REFERER'] != 'https://yourwebsite.ccom/page1.php') {
} else {
    //add your form and javascript code to auto post
}

这样做,如果用户快速尝试停止浏览器并查看源代码,他们将看到空的源代码。即使他们“重新发布”表单数据,他们也不会看到html源。

当然,这不会阻止他们通过元素检查器查看它。

然后您可以添加一些js来阻止对F12的访问,例如:

$(document).keydown(function(e){
    if(e.which === 123){
        return false;
    }
});

并使用类似的方式禁用右键单击和快捷键

<body oncontextmenu="return false" onkeydown="return false;" onmousedown="return false;">

但是,用户仍然可以禁用javascript,使用插件或其他几种方法进行检查。这就是为什么我说“绝对不可能”的原因。