2011-01-13 6 views
1

ので、私は、私はこのコードを問題を持っていますAjaxのポストセキュリティの質問

$params = "'plname=" . $player->username . "&plmiss=" . $player->miss . "&plmaxdmg=" . $player->maxdmg . "&plmindmg=" . $player->mindmg . "&plhp=" . $player->hp . "&plmhp=" . $player->maxhp; 
     $params .= "&enname=" . $enemy->username . "&enmiss=" . $enemy->miss . "&enmaxdmg=" . $enemy->maxdmg . "&enmindmg=" . $enemy->mindmg . "&enhp=" . $enemy->hp . "&enmhp=" . $enemy->hp . "'"; 
     buttonform("pvm.php","Attack",$params); 

buttonform機能:

function buttonform($page,$texto,$params) 
    { 
    ?><input type="button" onclick="ajaxpost('menu','<?php echo $page;?>',<?php echo $params;?>);" class="button" value="<?php echo $texto;?>"><? 
    } 

はそうあなたがそれを推測したときにクリックするボタンを作成する関数ますpvm.php + $ paramsに対するajaxリクエストを送信します。

しかし、問題は$ paramsが機密であり、変更することができないということです。しかし、ページコード(Google Chromeの開発ツールでこれを行ったもの)に入力すれば、それらの変数を私たちが望むものに変更することができます。それは私が望んでいないものです。もし誰でも私が変わりやすい変数を作るのを助けることができれば、感謝!

+0

は、暗号化工事していますか? – Lordareon

+0

実際には、クライアントサイドのDOM情報をリソースの多いユーザーから保護する方法では暗号化できません。 – Jake

答えて

1

ユーザーのブラウザにロードされているものはすべて変更可能です。その情報をサーバー側に保存する必要があります。

そのためには、PHPのセッションを見てみましょう:

http://www.w3schools.com/PHP/php_sessions.asp

http://www.php.net/manual/en/book.session.php

+0

hummmと私は、メモリストレージエンジンを使用してmysqlでテーブルを作成する場合は、これを毎回20人で4または5秒ごとに行うことは、パフォーマンスに重いinspactを持っていますか? – Lordareon

+0

私は$ _SESSION変数がデータベースに全く格納されないと思います。参照:http://stackoverflow.com/questions/454635/where-are-session-variables-stored – Jake

+0

は$ _SESSIONが変更可能ですか? – Lordareon