-2

これは私がやろうとしていることです:

私は CMS Web サイトを持っています。管理パネルで、ユーザーが Web サイトから購入できるパッケージを追加できます。したがって、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>';

したがって、ユーザーは事前定義されたパッケージのみをクリックします。ユーザーが PHP やスクリプト作成にある程度精通している場合、次のように URL を簡単に変更できます。

product_name=MYPRODUCT&product_id=1&price=1000$

このようなものに:

product_name=MYPRODUCT&product_id=1&price=10$

これは、同じパッケージを 1000 ドルではなく 10 ドルで購入できることを意味します。

したがって、パッケージごとに個別に生成されたこの URL を次のように暗号化する必要があります。

$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>';

次に、私の Buy.php ページで、この暗号化された文字列 deycrypts.

しかし、問題は復号化部分にあります。復号化すると、配列であると表示されるためです( $_GET を使用してURLを取得するため)。

そして、配列解読メソッドを使用すると、最初のページにエラーが表示されます。これは、暗号化している値が配列ではなく文字列であることを示しています。( 覚えておいてください: product_name=MYPRODUCT&product_id=1&price=1000$ は文字列です。)

では、1 つのページで文字列を暗号化し、( $_POST を使用して) URL 経由で送信し、次に Buy.php ページで $_GET を使用して配列に復号化する方法を教えてください。

長文になりましたら申し訳ありません。そして、暗号化/復号化コードが必要です。

4

1 に答える 1

2

セキュリティ上の理由から、GET/POSTパラメータを介して機密データを転送しないことをお勧めします。それらが暗号化されている場合でも、攻撃者がそれを暗号化してあなたに多くの損害を与える方法があるかもしれません。

製品の価格をデータベースに保存する必要があります。ユーザーが製品を選択すると、sthに転送します。お気に入り

$ form ='<form action = "/ buy.php?id = 34">'

そして、buy.phpで、データベースから価格と追加情報を取得します。

私のアドバイスは、 PHPセキュリティガイドを読むか、少なくとも見ることです。

于 2012-05-12T16:00:27.063 に答える