güvenle kodlamak ve PHP program için bir html bağlantı bir dize geçmek

2 Cevap php

What series of steps would be reqired to safely encode and pass a string from a html href using javascript to construct the link to a php program.

javascript URL kurmak içinde

// encodes a URI component.
path = "mypgm.php?from=" + encodeURIComponent(myvar) ;

php:

// get passed variables
$myvar = isset($_GET['myvar']) ? ($_GET['myvar']) : ''; 

// decode - (make the string  readable)
$myvar = (rawurldecode($myvar));

// converts characters to HTML entities (reduce risk of attack)
$myvar = htmlentities($myvar);

// maybe custom sanitize program as well?
// see [http://stackoverflow.com/questions/2668854/php-sanitizing-strings-to-make-them-url-and-filename-safe][1]
$myvar = sanitize($myvar);

2 Cevap

Ben ilk iki satır ince olması gerektiğini düşünüyorum. Ve metin olarak çıktı o varken eğer htmlentitiesi kullanmak istiyorsunuz.

Sizin kod baktığımızda, really ihtiyaç şudur:

$myvar = !empty($_GET['myvar']) ? $_GET['myvar'] : '';

Bunun ötesinde, PHP otomatik URL çözer. Ben çıkış verilerine giderken ben şahsen, yani benim htmlentities() veya htmlspecialchars() yapmayı tercih:

<?php echo htmlentities($mydata); ?>

Bir SQL sorgusu bina eğer siz özel bilgilerinizi kaçmak ya da sterilize gereken diğer tek zamandır:

$data = mysql_real_escape_string($mydata);
$query = "SELECT * FROM table WHERE stuff = '$mydata'";

SQL enjeksiyonu önlemek olacaktır. Eğer kullanıcı girişi biçimlendirme veya doğrulama gerçekleştirerek sürece, bu sanitasyonuyla başka türlü yapmak için kesinlikle gerekli değil.

Bu yardımcı olur umarım!