2011-02-02 7 views
1

同じページの読み込みでPHPからJSへの転送が必要なさまざまな重要な変数があります。私は現在、これらの変数をDOM要素の属性に格納しており、jQueryを使用してそれらを取得しています。PHPからJS/jQueryへの変数の転送と格納に最適な方法

これはうまくいきますが、情報の中にはかなり重要なものがありますが、これはDOMでは公開されず、「覗き見から隠されていません」と思われます。

私の質問は次のとおりです。PHPから変数をJSまたはDOMに転送し、それらを見えないようにする方法は?

お元気ですか、あなたが助けてくれることを願っています!

+4

私はそれは不可能だと考えていますあなたがそれを望む方法。 – yoda

答えて

1

ページロード時にajaxリクエストを使用します。以下はjQueryのシェルです:

$(function() 
{ 
    $.ajax("http://yoursite.com/phpscript.php", 
     { 
      method: "post", 
      dataType: "json", 
      success: function(data) 
       { 
        // do what you will with the data here 
       } 
     }); 
}); 

すべての情報は、ある時点で人のコンピュータにダウンロードされている必要があります。あなたはjavascriptで "隠された"ままにすることができますが、エンドユーザーは火かき棒などを使ってそのデータを簡単に見ることができます。

+1

firebugを使用している人は、私が答えたところで – Serge

+0

のように渡されている変数を見ることができます...あなたはfirebug yesを使用できます。 「平均的な」ユーザーには表示されません。それは、私が不可能な問題に本当の答えを得ることができるほど近いです。 –

+0

ありがとうございました。私はまだクライアント側でどのように安全な変数があったかについて少しは確信していました。私は今、私のアプリケーションのセキュリティに関して、これを念頭に置いています。 – wilsonpage

2

JSで起こっていることはすべて、エンドユーザーに潜在的に見える可能性があります。非表示にしようとしているデータが安全な場合は、おそらく、あなたのアプローチを再エンジニアリングする必要があります。

1

データをユーザーに送信し、同時にユーザーに送信しないようにしたいですか?

1

データが機密性が高い場合、データを安全に保ちながらクライアント側の処理のために渡す方法はありません。それは単にウェブの仕組みではありません。あなたがクライアントに引き渡すすべてのものは、必ずクライアントによって読み取られる必要があります。 SSLのようなテクノロジを使用してデータが傍受されるのを防ぐことができますが、意図した受信者はそれを読み取ることができなければなりません。重要なデータをサーバー側で処理し、一般消費用の結果のみを出力する必要があります。

あなたは、単にhidding厄介な実装の詳細ながら、ページにデータを利用できるようにしたい場合は、多くのオプションがあります:

  • var myValue = <?= $serverside_value ?>のようなものを出力することで、直接JavaScriptで自分の価値観<input type="hidden" />フィールド
  • ストアを使用またはjson_encode
  • 要求AJAX
1

経由で値がそれは私を与えることは非常に良いではありませんを使用して重要な情報をクライアント側(HTML/JS)に送信します。

jQuery's AJAXの方法を使用してPHPとPHPにリクエストを投稿すると、json_encode()'edのデータをjQueryに戻すことができます。 そして、それらを見えないようにしたい場合や、「十分に暗号化」と言う場合は、これをSSLチャネル経由で実行できます。 別のオプションの暗号化を自分で作るか、jQueryのポストと例えばpublic-private key encryption.

のためにいくつかの公共図書館を使用することです:PHPで

$.post("script.php", 
{requestKey : "requestValue"}, // $_POST["requestKey"] == "requestValue" 
function(response) { 
// if you receive JSON encoded data 
// you should use JSON decoder for javasript 
// or var obj = eval('(' + response + ')'); 
}, 
"json"); 

それは次のようになります。

$data = $_POST["requestKey"]; 
// do something 
echo json_encode($result); 
関連する問題