我使用一個腳本,用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部分。據我瞭解,輸入值是一個很大的安全風險,因爲任何東西都可以隨着價值發送。我已經遇到性能下降以及使用此代碼的幾個'電腦崩潰'。我不知道崩潰是否相關,但只有在我處理代碼時纔會發生。 無論如何,我真的很想知道如何驗證值(從輸入)發送到我的服務器,只有真正的網址應該大聲。我GOOGLE了好幾天,但我不能算出它(新的PHP)
PS如果你發現任何其他安全風險,請讓我知道..
究竟是什麼,你希望達到什麼目的?你想防止什麼? – 2013-03-08 11:35:41
如果你允許人們抓取任意的URL,添加任何一種明智的安全性將是地獄。你必須防止洪水,超時,有害的反應(例如太大)......爲什麼你首先提供這種公共服務? – 2013-03-08 11:35:43
@皮卡嗨,我只需要驗證網址,我認爲這將解決最大的安全風險。當然我不能保證100% – Youss 2013-03-08 11:37:17