2011-01-24 19 views
0

這裏是我的sample.html文件位於http://www.aaa.com/sample.htmlPHP&Javascript:如何保護網絡黑客的郵政和獲得方法?

<html> 
<script> 
    $(document).ready(function(){ 
    $.post('http://www.aaa.com/api/_file.php?act=add', {val : '1234'}); 
    }); 
</script> 
<body> 

</body> 
</html> 

,這是從sample.html文件

<?php 
    switch($_GET['act']){ 
    case 'add' : 
    doFunction(); 
    break; 
    } 

    function doFunction(){ 
    echo $_POST['val']; 
    } 

?> 

收到請求,如果我有一個像hack.html另一個HTML頁面我的PHP文件即位於另一個網站,例如http://www.bbb.com/hack.html

<html> 
<body> 
    <a href="http://www.aaa.com/api.php_file.php?act=add">Hack them!!!</a> 
</body> 
</html> 

我可以用bbb.com網站訪問aaa.com數據克服一些鏈接?如果是的話,我該如何保護它?

有什麼想法?或更好的方式?

Reguard。 (^^)

+2

我不明白。你究竟想要阻止什麼? – 2011-01-24 16:14:43

回答

4

這裏有兩個可能的問題。

  1. Cross site scripting (XSS)
  2. Cross site request forgery

抵禦所述第一條件:

  • 不允許HTML被添加到網站(爲用戶或任何其它用戶)用戶。在將所有數據輸出到站點之前,運行htmlspecialchars。如果您要設置屬性值而不是標籤之間出現的數據,則需要執行其他步驟(例如,禁止data:javascript:方案URI)。
  • 解析所有HTML輸入並在輸出前通過白名單運行它。

抵禦第二是:

  1. 啓動會話,並在數據存儲的隨機值,當用戶第一次訪問非編輯頁面。 (您可能希望定期生成新的令牌)。
  2. 包括您使用可以進行更改的任何形式的值(如果您使用的是鏈接或查詢字符串,但你不應該是GET請求被認爲是安全的)
  3. 拒絕任何請求在表單數據中沒有與會話中的值相匹配的值。 (第三方網站無法從會話中讀取它,因此不知道使用什麼值)。