JavaScript ekleme invoving saldırıları korumak Htmlentities içine HTML formları dönüştürme girişini kullanarak mı?

3 Cevap php

(PHP işlevi Htmlentities yoluyla () veya filter_input () PHP işlevi ile tandem FILTER_SANITIZE_SPECIAL_CHARS sabiti kullanılarak), html varlıkları içine bir HTML formundan POST girdisini dönüştürme, bir kullanıcı girişimleri gelebilecek saldırılara karşı korumaya yardımcı olur merak ettim Form alanının içini herhangi bir JavaScript kodu eklemek ya da diğer herhangi bir PHP tabanlı fonksiyon ya da taktik varsa ben güvenli bir HTML form deneyimi oluşturmak için istihdam edilmelidir?

Yüklenen çalışma cümle soru için özür dilerim ama bu acele ben kelime onu olabilir en iyisi.

Herhangi tepkiler büyük takdir ve teşekkür önceden tüm olacaktır.

racl101

3 Cevap

Aşağıdaki açacak:

<script>alert("Muhahaha");</script>

içine

&lt;script&gt;alert("Muhahaha");&lt;/script&gt;

So if you're printing out this data içine HTML later, you would be protected. It wouldn't protect you from:

"; alert("Muhahaha");

just in case you were echoing içine a script like so:

var t = "Hello there <?php echo $str;?>";

Bu amaçla, addslashes() and a database string escaping method like mysql_real_escape_string() kullanmalısınız.

evet, sterilize etmek için tek yoldur. bu her zaman XSS saldırıları korkmadan veritabanı içeriğini görüntüleyebilir yararı vardır. böylece metni göstermek istediğiniz her zaman, htmlentitiesi () bunu kullanmak - ancak, bir 'saf' yaklaşımı veritabanında ham veri depolamak ve görünümde dezenfekte etmektir.

Ancak, sizin yaklaşım hesap SQL enjeksiyon saldırıları içine almaz. Bunu karşı korumak için http://php.net/manual/en/function.mysql-real-escape-string.php bakmak isteyebilirsiniz.

Evet, bir web sayfasına veri görüntülemek istediğinizde bunu, ama ben kodlanmış olarak veritabanında HTML saklamayın öneririz, bu büyük metin alanları için ince görünebilir, ama kısa başlıklar var, bir 32 karakteri söylüyor Bir & içeren normal bir 30 karakter dizesi olmak ve olacaktır ve bu bir SQL hatası veya veri kesilecek neden olur ya.

Yani başparmak kuralı, mağaza her satır (Açıkçası SQL enjeksiyonu önlemek) ve kusurlu gibi, o geliyor olursa olsun her şeyi tedavi: veritabanı, kullanıcı formları, rss, düz dosyaları, XML, vb Bu nasıl inşa olduğunu iyi veri taşan endişesi olmadan güvenlik veya gerçeği oneday HTML kodlaması bir sorun olmayan bir web kullanıcı için veri ayıklamak gerekebilir.