我正在使用一个用 PHP 和 Jquery 编写的脚本,它允许抓取静态网站:
<?php
if(isset($_GET['site'])){
$f = fopen($_GET['site'], 'r');
$html = '';
while (!feof($f)) {
$html .= fread($f, 24000);
}
fclose($f);
echo $html;
}
?>
Jquery部分:
$(function(){
var site = $(input).val();
$.get('proxy.php', { site:site }, function(data){
$('#myDiv').append(data);
}, 'html');
});
如您所见,需要抓取的网站必须具有输入价值。我想让我的访问者能够设置自己的网站被抓取。
问题是我不知道如何保护 PHP 部分。据我了解,输入值是一个很大的安全风险,因为任何东西都可以带值发送。使用此代码时,我已经经历过性能缓慢和几次“电脑崩溃”。我不确定崩溃是否相关,但它们仅在我处理代码时发生。无论如何,我真的很想知道如何验证发送到我的服务器的值(来自输入),只有真正的 url 应该大声。我用谷歌搜索了好几天,但我无法弄清楚(PHP 的新功能)
ps 如果您发现任何其他安全风险,请告诉我..