I agree, also if you actually look at the request being sent to the server, the only difference between POST and GET is on is in the header where as the other is in the body.

The only security it adds is a slight obscurity.

Eric Faerber wrote:
Richard K Miller wrote:
Agreed.

For example, you might offer a one-click purchase button:

<form action="https://www.yourcompany.com/cart.php"; method="post">
<input type="hidden" name="product_id" value="12345" />
<input type="submit" name="submit" value="Buy this product now" />
</form>

If you use $_REQUEST instead of $_POST, then visiting the following URL will also cause your product to be purchased:

https://www.yourcompany.com/cart.php?product_id=12345&submit=Buy%20this%20product%20now

Now, let's say a hacker embeds the above URL in his MySpace page as an image.

<img src="https://www.yourcompany.com/cart.php?product_id=12345&submit=Buy%20this%20product%20now"; />

Any of your previously authenticated customers who visit this hacker's MySpace page will automatically purchase your product without knowing it.

This is called cross-site request forgery (CSRF):
http://en.wikipedia.org/wiki/Cross-site_request_forgery
You could also write javascript to POST data on a page without the user knowing it. This is a little more difficult to achieve but it's still easy.

IMO using $_REQUEST is fine as long as you sanitize the data and make sure that the data being submitted wasn't submitted without user interaction. You can create keys for forms that is stored in the session so when the form is submitted the session key has to match what was submitted in the form. Makes it impossible for forms to be submitted without the user knowing.

_______________________________________________

UPHPU mailing list
[email protected]
http://uphpu.org/mailman/listinfo/uphpu
IRC: #uphpu on irc.freenode.net



--

Sean Thayne,
Exit12


_______________________________________________

UPHPU mailing list
[email protected]
http://uphpu.org/mailman/listinfo/uphpu
IRC: #uphpu on irc.freenode.net

Reply via email to