2010-12-19 1 views
1

私はHTTPサーバーアプリケーションを開発しています(PHPでもそうです)。 URLに表IDが表示されるのを心配しています。アプリケーションを保護するためにURLの変数と値を暗号化することは可能ですか?URL変数のIDを暗号化します

+1

暗号化またはエンコードをより多くのアイデアを与えることができますか? –

+1

はい、そうです。何のために? – deceze

+1

@deceze:私は「はい」と答えるだけで誘惑されました。しかし、私は喜びの瞬間がおそらく不可避な(そして正当な)反撃に値するものではないと考えました... –

答えて

2

オハイオ州大丈夫なので、セッションを使用するのに最適な機密情報では、GET varをスローするのに安全なテーブルIDなどがありますか?

はい、機密情報は、サーバーを最初に置いてはいけません。セッションを使用する。

「URLで安全なテーブルIDです」:分かりませんが、何か悪いユーザがありますはテーブルIDを知っていますか?もしそうなら、それを修正する必要があります。通常、あなたは通常、夢見ている "ネイティブテーブルID"か他のランダムIDかどうかは、種類のIDを渡す必要があります。 URLにレコードのIDを表示することは本質的に安全であることは何もありません。つまり、それ自体が絶対に何も意味しません。それはあなたのアプリがこのIDを使ってセキュリティホールを開くかどうかを決める方法です。
さらに、ユーザーが知っていない他のIDを簡単に推測できるかどうか、またセキュリティに悪影響を与えるかどうかを考えます。

セキュリティは単なるものではなく、あなたが書く1行のコードごとに考える必要があります。

0

機密情報をGETパラメータとして渡したいと思うように聞こえます。

できない場合は、$_SESSIONを使用してください。

ただし、パラメータをエンコードする場合は( =>+)、urlencode()を使用してください。

$a = 'how are you?'; 

echo urlencode($a); // how+are+you%3F 
0

あなたが送信する前に、あなたが渡すものを暗号化することもできますし、(たとえば、HTTPSまたはssh)暗号化されたチャネルを介して通信全体を実行することができます。

+0

SSLを使用する場合、GETパラメータであるため、ユーザには見えないことがありますが、SSLの使用には若干の問題があります。つまり、使用シナリオの95%を解決するソリューションを実装するのは非常に簡単です – Basic

0

あなたのGET変数は、あなたがそれらを呼び出すために選択したものと呼ばれ、あなたがそれらを与えるために選択した値を割り当てられます。だから、はい:彼らは確かに暗号化することができますか、もしあなたがむしろ単純に覆い隠すことができます。 encrypt variables, then PHP has quite a few options availableに予定している場合。

上記については、urlencodeのようなものを使用することをおすすめします。

一般に、フォーム要素から変数を取得していると仮定して、GETではなくPOSTを使用することをお勧めします。一方、セッション変数を使用する方が賢明かもしれません。

関連する問題