Note that there are some explanatory texts on larger screens.

plurals
  1. POPaypal Security Flaw?
    primarykey
    data
    text
    <p>I have a the following form at the end of a booking process (simplified):</p> <pre><code>&lt;form action="https://www.paypal.com/cgi-bin/webscr" name="paypalForm" method="post"&gt; &lt;input type="hidden" name="amount" value="&lt;?=$price;?&gt;"&gt; &lt;input type="hidden" name="business" value="business@email.co.uk"&gt; &lt;input type="hidden" name="notify_url" value="http://website.co.uk/ipn"&gt; &lt;/form&gt; </code></pre> <p>I have only left out things like address name etc. So when they pay via Paypal, I am using paypal IPN to mark them in the database as paid. <em>However</em>..</p> <p>I have gone to the end of my booking system and viewed source of the webpage, modified the business email address and amount. I haven't tried a full transaction yet, but surely with the 'notify_url' in there Paypal with send an IPN message to my server and will mark the person off as paid? Isn't this terrible security? Surely this not how all paypal payments work, I must be missing something.</p> <p>There are two things I can think of that might prevent this:</p> <ol> <li>If I remove the "notify_url", will the IPN URL that I have set <em>in</em> paypal work instead? What value does paypal place on the hidden var <code>notify_url</code>, does it override the settings in the back end of paypal?</li> <li>In my IPN code I could check for business and Amount. I don't currently, as I didn't read any where in the documentation that I should. But now, I am thinking that maybe it would be a terribly good idea.</li> </ol>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload