3

私のWebサイトでは、「user_status」、「user_name」などのセッションオブジェクトにいくつかの値を設定しました。php ファイルは次のようになります。

<script type="text/javascript">
    var logged = <? echo $this->session->getValueOf("user_status"); ?>;
</script>

<a class="show_message" href="#">SHow my status</a>

さて、私はウェブサイトに従ってアクションを実行するふりをするjsスクリプトを持っているuser statusので、これがあります:

$('.show_status').click(function(event){

    //ask for user status
    if (logged){
        //do something
    }
    else{
        //do another action for visitors
    }
});

ブラウザでページソースを調べると の値が表示され、ウェブサイトのセキュリティに危険を及ぼす可能性があるため、歩き回ってsession->の間でデータを流すのが最善の方法であると考えました。javascriptuser_status

前もって感謝します

編集:

  1. loggedvar はブール値のみを取ります。
  2. #(".show_status")要素がクリックされるたびに、js アクションを実行する必要があります。
4

2 に答える 2

3

JavaScript がインターフェイスに使用されているだけで、バックエンドの影響がない場合は、そのロジックをクライアント側で処理する際のセキュリティの不安についてあまり心配する必要はありません。

ただし、セキュリティが重要な場合は、PHP を使用して適切な JavaScript 関数を作成することをお勧めします。例えば:

表示中のページ (おそらくヘッダー) には、次のものがあります。

<script type="text/javascript">
    <?php
    if ($this->session->getValueOf("user_status")) {
        require_once('logged_in_user_functions.js');
    } else {
        require_once('visitor_functions.js');
    }
    ?>
</script>

ファイル `logged_in_user_functions.js' には次のものがあります。

function showComment(id) {
    //logic that shows the comment here
}

function showCommentSubmissionForm() {
    //logic that adds this form to the page goes here
}

一方、ファイル「visitor_functions.js」には次のものがあります。

function showComment(id) {
    //logic that shows the comment in a different way goes here
}

function showCommentSubmissionForm() {
    //logic to display a message saying the user needs to log in to post a comment goes here
}

その後、ユーザーのステータスを確認しなくても、ロジックをページに追加できます。どの .js ファイルが含まれているかによって、適切な動作が提供されます。

<button id='add_comment_button' onclick='showCommentSubmissionForm()'>Add Comment</button>

これにより、PHP (クライアントではなくサーバー) が、ユーザーに表示される内容について最終的な決定権を与えられます。

于 2012-07-30T03:18:48.457 に答える
2

user_statusのようなものになると仮定するとActive、これは実際にはセキュリティ上のリスクではありません。

さりげなく詮索好きな目からすべてを隠したい場合は、暗号化された Cookie を使用してみてください。たとえば、 How to save encrypted data in cookie (using php)? 値を暗号化します。

于 2012-07-30T03:16:39.557 に答える