所以我的问题很简单:我有一个托管的PHP网站,我正在构建一个程序,窗口中有一个Web浏览器来打开里面的网站。有没有办法使网站只能从此程序访问?我的意思是,如果有人从另一个浏览器(chrome,opera...)打开它,它将无法打开。非常感谢,感谢您的帮助<</p>
我的意思是这样...
注意:跳过对传入数据的任何验证和清理
应用端示例(使用哪种语言无关紧要):
<?php
define('SECURE_SALT', '123456');
$t = microtime(true);
$c = curl_init();
$o = array(
CURLOPT_URL => 'http://my.awesome.site',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array('MY-SUPER-APP: '.md5(SECURE_SALT.$t).':'.$t,
);
$r = curl_exec($c);
print_r($r);
甚至像这样:
curl -H 'MY-SUPER-APP: 1dcf5ccf8a97d2ffbbacb7bc9e23d0b4:1455130639.1448' http://my.awesome.site
服务器端示例:
<?php
define('SECURE_SALT', '123456');
define('CHECK_DIFF', 600); // seconds
$now = microtime(true);
$head = $_SERVER['HTTP_MY_SUPER_APP'];
list($hash, $time) = explode(':',$head);
$checkHash = md5(SECURE_SALT.$time);
if (($now - $time) < CHECK_DIFF) {
if ($hash == $checkHash) {
// hooray.. our application detected
// ...
}
}
我认为您可以尝试为您的应用程序创建自定义用户代理字符串,然后,如果请求的用户代理与您的应用程序用户代理相同,请在您的 PHP 代码上检查它。
这是我的做法:我创建了一个带有奇怪链接的孤儿网页(例如:booboo123_99999.yoursite.com/setitweird444444444.php
),所以除了你之外没有人会知道这个链接。您还可以停用从应用程序浏览器显示源代码的功能。