我想检测view-source:并为其添加不同的html。 我尝试过使用它,但它不能正常工作
$url= $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$needle = "view-source:";
if (strpos($url,$needle)) { echo "You can not see me";
}
else {}
答案 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,使用插件或其他几种方法进行检查。这就是为什么我说“绝对不可能”的原因。