我想检测 view-source: 并向其添加不同的 html。 我尝试过使用它,但它不起作用
$url= $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$needle = "view-source:";
if (strpos($url,$needle)) { echo "You can not see me";
}
else {}
最佳答案
这不是“完全可能”,但根据具体情况,有办法阻止它 - 无论您读多少次“不可能”。
如果您使用页面作为passoff,则可以通过使用$_SERVER['HTTP_REFERER']
来阻止查看源代码。
示例:page1.php
将数据发布到 page2.php
,后者会 secret 添加更多要发布的数据,并使用 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、使用插件或其他几种方法来进行检查。这就是为什么我说“完全可能”。
关于javascript - 查看view-source :时如何加载不同的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45443326/