2011-01-24 10 views
0
ここ

http://www.aaa.com/sample.htmlPHPとJavascript:どのように投稿のためのWebハッカーを保護し、メソッドを取得するには?

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

</body> 
</html> 

にある私のsample.htmlファイルであり、これは私のPHPファイルであるsample.htmlファイルからのリクエストを受け取る

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

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

?> 

私はhack.htmlのような別のHTMLページを持っている場合それは別のウェブサイト、例えば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

わかりません。あなたは何を防止しようとしていますか? –

答えて

4

ここには2つの問題が考えられます。

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

によって最初を防御:HTMLは、ユーザーが(ユーザまたは他のユーザのための)サイトに追加できるようにすることはない

  • 。すべてのデータに対してhtmlspecialcharsを実行してからサイトに出力してください。タグ間に表示されるデータの代わりに属性値を設定する場合は、追加の手順を踏む必要があります(data:またはjavascript:スキームURIの禁止など)。
  • すべてのHTML入力を解析し、出力する前にホワイトリストで実行します。セッションの開始、いつユーザ最初の訪問の非編集ページデータ内のランダム値を記憶

はによって第に対して守ります。 (おそらく定期的に新しいトークンを生成したいと思うでしょう)。

  • 変更を加えることができる任意の形式(またはリンクを使用している場合はクエリ文字列に含めるが、GET要求は安全でないはずである)に値を含める。
  • セッションの値と一致するフォームデータに値がありません。 (サードパーティのサイトはセッションからそれを読み取ることができないので、どの値を使用するのか分かりません)。
  • 関連する問題