2012-05-12 47 views
-2

これは私がやろうとしていることです:復号化、暗号化

私は管理用パネルにCMSウェブサイトを持っています。ユーザーが私のウェブサイトから購入できるパッケージをいくつか追加できます。だから私のChoose.phpページで、ユーザーは購入したいパッケージを選択することができます。そして、もちろん、価格はパッケージではなく、私自身によって設定されます。

彼らはパッケージをクリックすると、ページは次のように別のページにデータを送信します。

$form = '<form action="/buy.php?'product_name='.$name.'&product_id='.$product_id.'&price='.$ammount.'" method="post" target="_parent" ><input type="submit"  style="background-image:url(images/p.png);height: 55px;width: 118px;" value=""/></form>'; 

、ユーザーが事前に定義されたパッケージをクリックしますので。以下のようなものに

PRODUCT_NAME = MYPRODUCT &のproduct_id = 1 &価格= 1000 $

:ユーザーがPHPでいくつかの方法を専門家である、あるいはスクリプト内ならば、彼は簡単のようなURLを変更することができますこの:

PRODUCT_NAME = MYPRODUCT &のproduct_id = 1つの&価格= 10 $

これは、彼らが1000 $の代わりに10 &の同じパッケージを購入できることを意味します。私Buy.phpページで、その後

$form = '<form action="/buy.php?MVNnaPgxpQizqwv7YElroi5E" method="post" target="_parent" ><input type="submit"  style="background-image:url(images/p.png);height: 55px;width: 118px;" value=""/></form>'; 

、この暗号化された文字列、deycrypts:

だから私はこのような何かに、個別に各パッケージのためにgerneratedされ、このURLをECRYPTする必要があります。

しかし、私はそれを暗号解除すると、それは配列だと言います(なぜなら私は$ _GETを使ってURLを取得するからです)。

配列の暗号化メソッドを使用すると、最初のページでエラーが発生します。暗号化する値は配列ではなく文字列です。 (注意:。PRODUCT_NAME = MYPRODUCT &のproduct_id = 1 &価格の文字列である= 1000 $)

だから、どのように私は購入して、その後($ _POSTで)URL経由で送信、1ページ内の文字列を暗号化することができます。 PHPページで、$ _GETを使用して配列にデサイクルします。

申し訳ありませんがロングポストになってしまいます。暗号化/復号化コードが必要です。

+1

を見ていることです。 'buy.php'のプロジェクトIDから価格と製品名を取り出してください。そして、実際にURLを変更するには専門家はいません... – Ryan

+0

なぜあなたは投稿を使いませんか? – rjv

+0

@Rajeev:私は自分のフォームに投稿を使用しています。 – Siwa

答えて

2

セキュリティ上の理由から、機密データをGET/POSTパラメータで転送しないことをお勧めします。 暗号化されていても、攻撃者が暗号化して多くの被害をもたらす方法が存在する可能性があります。

データベースに製品の価格を格納する必要があります。ユーザーが商品を選択すると、sthに転送されます。以下のような

$フォーム= '<フォームアクション= "/ buy.php?ID = 34" >'

そしてbuy.phpに、あなたは、データベースから価格や追加情報を取得します。

私のアドバイスは、それをしないでください読み取りまたは少なくともPHP Security Guide

+0

あなたのアドバイスは良いアドバイスだと思います。私は現在私のウェブサイトに使用しているMYSQLを使用する必要があります。再びtnx。 ;) – Siwa