我在服务器上有一个更新数据库的 PHP 脚本。
我希望能够从远程调用此脚本,无论是从另一台服务器还是 我的本地主机 PC 使用 GET,或从浏览器使用 AJAX,
但我不希望任何人能够调用此脚本,除非 允许。
到目前为止,我只是在脚本中添加了一段代码来验证 GET 中的某个 pin,即
//myscript.php
if( isset($_GET['pin']) && $_GET['pin'] === '1234' )
{
//update the DB...
通过这种方式,远程调用者必须知道 pin,即
file_get_contents(http://remoteserver.com/myscrip.php?pin=1234); //will work
file_get_contents(http://remoteserver.com/myscrip.php?pin=5678); //will NOT work
这看起来很简单,我想知道它是否安全。
还有哪些其他可能的更安全的替代方案(可能不会太复杂)?
例如,我读到过有关使用随时间变化的散列的信息,但这是否值得,如何实现?
最佳答案
您可以使用密码保护该文件夹(如果您使用的是 cpanel 或 plesk,则可以轻松完成)并使用 curl 访问该 url。
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
关于php - 保护对远程 php 脚本的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7529937/