PHP &

2 Cevap php

Ben kullanıcıların MySpace yapmak gibi güvenli PHP ve MySQL kullanarak orada profilleri HTML ve CSS girmek için izin nasıl merak edildi.

2 Cevap

Kesinlikle verileri dikkatle dezenfekte ve "zararsız" tabloların bir dizi sınırlamak istiyorum. Örneğin http://htmlpurifier.org/ bu konuda size yardımcı olabilir.

HTML Purifier is a standards-compliant HTML filter library written in PHP. HTML Purifier will not only remove all malicious code (better known as XSS) with a thoroughly audited, secure yet permissive whitelist, it will also make sure your documents are standards compliant

Eğer veritabanı kullanımı prepared statements içine veya verileri dikkatle koyduğunuzda verileri kaçmak.

Dikkate en az iki şey vardır:

  • güvenli bir veritabanına HTML veri kaydetme
  • güvenle sayfasındaki HTML verileri çıktılamak.


For the first point, you must avoid SQL injections.

Bu, mysql_real_escape_string , mysqli_real_escape_string , or PDO::quote , bağlı yanı fonksiyonları ile, kendi insert sorgu içine enjekte önce, sizin dize verileri kaçan yapılabilir Kullandığınız API.

Ayrıca, hazırlanmış Tabloların tarafından ilginizi çekebilir; PDO::prepare , or mysqli_prepare bakın.


For the second point, what matters is only allowing HTML tags and attributes that you consider as safe.

Bu gibi bir aracı kullanarak yapılabilir HTMLPurifier tüm kötü / non-kabul etiketleri filtrelemek için, ve niteliklerini, ve sadece izin whish alt tutmaya.


For example, if you consider the following HTML input :

<p>hello, world !</p>
<script type="text/javascript">alert('bad');</script>
<strong>this is <em>some text</strong></em>

HTMLPurifier onu arındırmak / dönüştürecek:

<p>hello, world !</p>
<strong>this is <em>some text</em></strong>

Not:

  • <script> etiketi kaldırıldı
  • <em> ve <strong> etiketleri HTML XHTML geçerli yapma, doğru sırayla geri koymak olmuştur.