mysql_real_escape_string used when insert into database
htmlentities() used when outputting data into webpage
htmlspecialchars() used when??
strip_tags() used when ??
addslashes() used when ??
htmlspecialchars() used when??
htmlspecialchars kabaca Htmlentities aynıdır. farkı: karakter kodlamaları.
<
, >
, &
ve böylece vb etiketleri açmak için kullanılan olduğu gibi kodlamak kontrol karakterleri hem htmlentities da umlauts, euro-semboller gibi diğer dillerden karakter kodlamak ve bu gibi. web siteleri utf ise, aksi htmlentitiesi kullanın (), htmlspecialchars () kullanın.
strip_tags() used when ??
htmlspecialchars'ın / kişiler özel karakter kodlamak, bu yüzden displayed but not interpreted konum. strip_tags onları kaldırır.
pratikte, yapmanız gereken ne bağlıdır.
Bir örnek ... Bir forum kodlu ve onlar şeyler yazılan böylece kullanıcılara bir metin alanını vermek ettik. kötü niyetli olanlar sadece deneyin
pictures of <a href="javascript:void(window.setInterval(function () {window.open('http://evil.com');}, 1000));">kittens</a> here
Eğer bir şey yapmazsak, bağlantı display'd olacak ve linke tıkladığında bir kurban pop-up bir sürü alır.
Eğer htmlentitiy / htmlspecialchar çıkış durumunda olduğu gibi, metin olacak. Eğer strip_tag eğer, sadece etiketleri kaldırır ve görüntüler:
pictures of kittens here
<b>
(strip_tags orada belirli etiketleri bırakabilirsiniz) gibi bazen, orada bazı etiketleri bırakın, bir karışım isteyebilirsiniz. Bu nedenle daha iyi xss karşı bazı tam şişmiş kütüphane kullanımı, çok güvensiz
addslashes
php manuel alıntı:
Bu karakterler tek tırnak ('), çift tırnak ("), ters eğik çizgi () ve NUL (NULL byte) vb veritabanı sorgularını kote edilmesi gereken karakterden önce ters eğik çizgi ile bir dize döndürür.
Bir veritabanına veri girerken yaparken addslashes () kullanımına bir örnek olduğunu. Örneğin, bir veritabanına isim O'Reilly eklemek için, bunu kaçmak gerekir. Eğer does't kullandığınız DBMS bir kaçış işlevi vardır ve DBMS özel karakter kaçmaya \ kullandığı takdirde son derece, (PostgreSQL için MySQL veya pg_escape_string () örneğin mysqli_real_escape_string ()) DBMS özgü kaçış işlevi kullanmak için recommeneded, ama oluyor bu işlevi kullanabilirsiniz.