1

我正在使用 linux cpanel 共享主机。

我正在使用http://aaa.com/script.php从其他网站上抓取数据。

PHP部分是curl调用读取整个页面内容,然后在页面上,将完整内容输出为html,然后使用jquery scrapping & ajax call将最终数据插入mysql。

(我决定使用 jquery 客户端报废,因为要报废的 html 页面非常复杂,并且很难使用 phpsimpledom 和 regex 实现。)

我希望这个页面在它不是由我作为测试人员打开时停止输出 html - 不是由本地 cpanel cron 任务打开的。

所以我放在exit();前几行。如果检测到是合法的,那么将在底部继续其余的 html 输出,否则,只需退出并显示一个空白页面。

现在是安全问题,对我来说,确保该页面的其他访问者/机器人看到空白页面的可能和最佳方法是什么。

如果我为 cron 任务输入密码,我认为它不能正常工作?因为在 script.php 我正在抓取数据,所以如果网站所有者看到访问者推荐日志,他可以看到完整的 url,包括 ?password=12345,不是吗。

/usr/local/bin/php -f /home/mysite/public_html/dir/script.php?password=12345

如果我将脚本放在 public_html 之外,就像/usr/local/bin/php -f /home/mysite/script 我认为它不适用于 jquery 一样,它纯粹是用于 php 不是吗?

我还能做什么??

4

2 回答 2

2

您可以将 apache 的虚拟主机配置为仅允许从您的 ip 访问。根据您的配置方式,其他任何人都会收到 404 页面未找到或 403 权限被拒绝。

这是一个示例

Order Deny,Allow
Deny from all
Allow from 127.0.0.1

使用 127.0.0.1 告诉 apache 让来自自身的请求(即 cron)工作,但不让其他人工作。

您可以通过阅读 apache2 文档了解更多信息

于 2011-02-20T02:14:04.597 回答
0

查询字符串上的密码是个坏主意。您可以在 PHP 文件的开头检查有效的 IP 地址。这将允许来自一组 IP 地址的任何请求访问已解析的 jQuery 输出。所有其他 IP 将被拒绝访问。

$allowedIps = array('127.0.0.1','::1');
if(!in_array($_SERVER['REMOTE_ADDR'],$allowedIps)){
    echo 'No jQuery for you';
}else{
    echo 'jQuery goodness to follow...';
}
于 2011-02-21T05:06:40.353 回答