Ben elektronik olarak görüntülenen veri için ödeme toplamak için paypal kullanan bir site var. Değişkenler paypal aracılığıyla URL ile geçti olamaz (ya da ben onları işe almak değil) bu yüzden öğe sayısını geçmek için çerezleri kullandık. Ancak, kurnaz kullanıcı, çerez yazma bölümünden sonra, doğrudan adres çubuğuna paypal yönlendirme URL'sini girin ve ücretsiz e-verileri alabilir. Paypal atlama. Bunu nasıl etrafında alabilirsiniz?
İşte bazı kod olduğunu. Sen Ben düz çerez yazı (pre_contact.php) ve paypal yönlendirme URL (step.php) geçerek zor kullanıcı için yapmaya çalıştım göreceksiniz.
//pre_contact.php
<?PHP
global $id;
setcookie("property", $id, time()+1800);
echo "<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=contact.php\">";
?>
//contact.php - paypal pay button
echo "<form action='https://www.paypal.com/cgi-bin/webscr' method='post'>";
echo "<input type='hidden' name='cmd' value='_s-xclick'>";
echo "<input type='hidden' name='hosted_button_id' value='156320'>";
echo "<input type='image'
src='https://www.paypal.com/en_GB/i/btn/btn_paynowCC_LG.gif' border='0' name='submit'
alt='Click to pay'>";
echo "<img alt='' border='0' src='https://www.paypal.com/en_GB/i/scr/pixel.gif' width='1' height='1'>";
echo "</form>";
//step.php - paypal redirect on successful payment
<?PHP
require("generate_url.php");
?>
//generate_url.php - This generates a unique URL so the info can only be accessed once
<?PHP
if (eregi("generate_url.php", $_SERVER['SCRIPT_NAME'])) {
Header("Location: index.php"); die();
}
$token = md5(uniqid(rand(),1));
setcookie("token", $token, time()+4);
$cwd = substr($_SERVER['PHP_SELF'],0,strrpos($_SERVER['PHP_SELF'],"/"));
Header("Location: $cwd/get_file.php?q=$token"); die();
?>
//get_file.php - displays the file after payment
$qtoken = $_GET['q'];
if ($qtoken===$_COOKIE["token"]){
$id=$_COOKIE["property"];
DISPLAY FILE HERE!!
Şimdiden teşekkürler