解密,加密

时间:2012-05-12 15:54:10

标签: php

这就是我要做的事情:

我有一个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>';

因此用户只需点击预定义的包。如果用户是PHP的专家,甚至是脚本专家,他可以轻松地更改网址:

  

PRODUCT_NAME = myProduct的&安培; PRODUCT_ID = 1&安培;价格= $ 1000

这样的事情:

  

PRODUCT_NAME = myProduct的&安培; PRODUCT_ID = 1&安培;价格= $ 10

这意味着,他们可以为10&amp; amp;购买相同的包装。而不是1000美元。

所以我需要分别为每个包装生成这个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来获取网址)。

当我使用数组deycription方法时,我的第一页中出现错误,它表示我正在加密的值是String而不是Array。 (请记住:product_name = MYPRODUCT&amp; product_id = 1&amp; price = 1000 $这是一个字符串。)

那么如何在一个页面中加密字符串,通过url(使用$ _POST)发送,然后在Buy.php页面中,使用$ _GET并将其解包为数组。

很抱歉,如果它成为长篇文章。我需要一个加密/解密代码。

1 个答案:

答案 0 :(得分:2)

出于安全考虑,我建议您不要通过GET / POST参数转发任何敏感数据! 即使它们是加密的,攻击者也可能有办法加密它并给你带来很多伤害。

您应该将产品的价格存储在数据库中。当用户选择您转发的产品时......像

$ form ='&lt; form action =“/ buy.php?id = 34”&gt;'

然后在buy.php中,您可以从数据库中检索价格和其他信息。

我的建议是阅读或至少查看PHP Security Guide