2011-09-11 15 views
142

XML ile aynı mı, belki de artı bir alan mı (& ampnbsp;)?HTML'de hangi karakterlerin önüne geçilmesi gerekiyor?

HTML kaçış karakterlerinin çok büyük listelerini buldum ancak 'un kodunun çıkması gerektiğini düşünmüyorum. 'un kaçması için'un ne gerektiğini bilmek istiyorum. öznitelik olarak

& becomes & 
< becomes &lt; 
> becomes &gt; 

da tırnak karakteri kaçmak gerekir, sana değer: Belgeniz unicode ise

+6

Bu soru [muhtemelen] olmayan düşmanca içerik varsayar. HTML'de saldırgan kontrollü içeriği güvenli bir şekilde gömmeniz gerekiyorsa, bkz. Http://wonko.com/post/html-escaping. –

cevap

161

, sadece [spec] [doc] Metninizde XML için aynı olanları kaçmak gerekir [spec]:

" becomes &quot; 
' becomes &#39; 

Belgeniz ASCII veya başka bir Unicode olmayan kodlama ve chara kullanıyorsanız Desteklenmeyen cters, onları kaçmak gerekir. Aksi halde, ’dan iyisiniz.

Genellikle boşluklardan çıkmak istemiyorsanız &nbsp;. &nbsp; normal bir alan değil, bu, ]. İki kelime arasında girmesini engelleyecek şekilde bir satır sonu engellemek için normal yerine boşluk bunlar kullanabilir veya eklemek için                     ekstra                 uzay               otomatik olarak daraltılmadan, ancak bunu çok sık yapmanız gerekmeyecek. Sen bir <style> veya <script> etiketinin içine yani (sıradan metin eklemek mantıklı bir yere kaçmış metni değil ekliyorsanız sürece iyiyiz değil, özellik değeri içindeki


). Aksi halde, daxelrod's answer ve described here by the Open Web Application Security Project numaralı belgelerde belirtilen diğer önlemleri almalısınız.

+3

Belgelerin bir unicode içinde olması durumunda, sadece 5 XML karakter varlığından kurtulmanız gerektiğini ifade eden bazı belgelerden bahsedebilir misiniz? Daha fazlasını öğrenmek istiyorum. –

+0

@MichaelWaterfall: Özellikle söyleyerek herhangi bir belge olabilir, ama karakterlerin özniteliklerde ve metinde kaçan gereken bahseder HTML şartname başvurular eklendi ve tarafından ne demek açıklayan bir dipnot eklendi "metni kaçtı" . HTML öğelerini kullanmanızın gerekebileceği tek diğer neden, kullanmakta olduğunuz karakter kümesiyle temsil edilemeyen karakterleri temsil etmektir, ancak bu Unicode ile gerçekleşemez. –

+2

'>' karakterinin hiçbir zaman kaçırılmaması gerekir. o ayırıcı olarak aynı karaktere sahip bir özellik değeri içinde görünen nerede karakter '" '(sırasıyla' ' ') nadir durumlarda sadece kaçmış gerekiyor. Üstelik, HTML sözdiziminde, karakterler' & (XHTML ters olarak) 've' < 'hep kaçmış gerek yoktur, ayrıntılı bilgi için özelliklerine bakın –

3

Temelde her zaman HTML ve XML dosyalarında kaçan edilmelidir üç ana karakter vardır, bu yüzden muhtemelen bekliyor şekilde onlar ikisi olacak synatax olmak, işaretlemeleri geri kalanı ile etkileşim yok < olan ambalajları,>, bunlar listelenir aşağıdaki gibi: Ayrıca

1) &lt; (<) 

2) &gt; (>) 

3) &amp; (&) 

biz " gibi çift tırnak (") ve & talimatlarına

kaçının dinamik koyarak olarak tek tırnak (') kullanabiliriçeriğive <style>. Bu kurallar onlar için geçerli değildir. Örneğin, JSON'u a içine eklemeniz gerekiyorsa, <'u \ x3c, \ u2028 ile U + 2028 karakterini ve JSON serileştirdikten sonra \ u2029 ile U + 2029'u değiştirin.)

HTML Kaçış Karakterleri: Tam Liste: http://www.theukwebdesigncompany.com/articles/entity-escape-characters.php

Yani bir karakter referansı başlayabileceği bir şey ile bitirilen < veya & kaçmak gerekir. Ayrıca, eşleşen tırnak işareti tek bir sonlandırılacak tek şey olduğundan, ve işaretlenen kurallar için tek kural kuraldır. Ancak, oradaki özellik değerini sonlandırmak istemiyorsanız, tırnak işaretinden kurtulun.

için değiştirme UTF-8 vasıta yeniden tasarrufu Dosyanızı: UTF-8 sayfanız için size çoğu kaçar ihtiyaç duyulmaması ve sadece karakterlerle çalışmak anlamına gelir karakter kodlamasını kullanarak

. Ancak, bu değişim belgenizin kodlama için, sadece sayfanın üst kısmında veya sunucudaki kodlama bildiriminin değiştirmeye yetmez. , belgenizi bu kodlamaya yeniden kaydetmeniz gerekir. 'u anlama konusunda, uygulamanızla nasıl yapılacağını anlamak için web yazma uygulamalarında kodlama ayarlarını okuyun.

Görünmez veya belirsiz karakterler: Kaçış için

özellikle kullanışlı rol sunuda görünmez ya da belirsiz karakterleri temsil etmektir.

bir örneği Unicode karakter U +, 200F sağdan-SOL İŞARETİ olacaktır. Bu karakter çift yönlü metin yılında yönünü açıklamak için kullanılabilir (örn. Arapça veya İbranice komut kullanılırken). Ancak hiçbir grafik formu, sahiptir, nedenle bu karakterler metinde nerede olduğunu görmek zordur ve bunlar kaybı veya unutulması durumunda bunlar daha sonra düzenleme sırasında beklenmeyen sonuçlar oluşturabilirsiniz. yerine çok kolay bu karakterleri noktaya yapar; (ya da sayısal karakter referans eşdeğer & # x200F) ‏ kullanma.

belirsiz bir karakter bir örneği, U +, 00A0 kesintisizlik alanıdır. Bu alan türü, satır kopmasını önler, ancak karakter olarak kullanıldığında diğer boşluğuna benziyor.  'u kullanarak, bu gibi boşlukların metinde göründüğü yeri oldukça netleştirir.

İlgili konular