HtmlEncode etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
HtmlEncode etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

11 Şubat 2024 Pazar

ASP.NET'te HtmlEncode, HtmlDecode ve HtmlRaw

 

ASP.NET'de sıkça kullanılan ve web uygulamalarında HTML içeriğiyle ilgili güvenlik ve görüntüleme sorunlarını ele almak için kullanılan üç önemli yöntemdir.

  1. HtmlEncode: Bu yöntem, bir metin dizesindeki HTML özel karakterlerini HTML kodlarına dönüştürmek için kullanılır. Örneğin, <, >, &, ", ' gibi karakterler HTML belgesi içerisinde özel anlamlara sahiptir. HtmlEncode metodu, bu karakterleri güvenli bir şekilde kodlayarak tarayıcıya aktarılmasını sağlar ve kullanıcıların kötü niyetli kod enjeksiyonu saldırılarından korunmasına yardımcı olur.

  2. HtmlDecode: HtmlEncode'in tam tersi olarak çalışır. Bu yöntem, bir HTML kodunu gerçek metin haline dönüştürmek için kullanılır. Örneğin, bir veritabanından alınan bir metin dizesi HTML kodlarını içeriyor olabilir. Bu kodlar, tarayıcıda doğru şekilde görüntülenmeden önce HtmlDecode metodu ile orijinal metin haline dönüştürülmelidir.

  3. HtmlRaw: Bu yöntem, bir metin dizesinin HTML içeriği olduğunu belirtmek için kullanılır. Eğer bir metin dizesinin içeriğinin zaten güvenli olduğu ve HTML olarak yorumlanması gerektiğinde HtmlRaw kullanılır. Bu yöntem, ASP.NET Core MVC ve Razor sayfalarında sıklıkla kullanılır. HtmlRaw kullanıldığında, ASP.NET belirtilen metni doğrudan HTML olarak render eder, bu nedenle güvenliği sağlamak için dikkatli olunmalıdır ve kullanıcı tarafından sağlanan verilerin doğrudan HtmlRaw kullanılarak işlenmesinden kaçınılmalıdır.

  1. HtmlEncode Örneği:
csharp
string originalText = "<script>alert('Merhaba!');</script>"; string encodedText = System.Web.HttpUtility.HtmlEncode(originalText); // encodedText şimdi "&lt;script&gt;alert('Merhaba!');&lt;/script&gt;" içeriğine sahiptir.
  1. HtmlDecode Örneği:
csharp
string encodedText = "&lt;script&gt;alert('Merhaba!');&lt;/script&gt;"; string decodedText = System.Web.HttpUtility.HtmlDecode(encodedText); // decodedText şimdi "<script>alert('Merhaba!');</script>" içeriğine sahiptir.
  1. HtmlRaw Örneği (Razor Pages veya Razor View Engine kullanılarak):
csharp
@Html.Raw("<h1>Merhaba dünya!</h1>") // Bu kod, tarayıcıya gönderilen HTML içeriğinin doğrudan render edilmesini sağlar.

Bu örneklerde görüldüğü gibi, HtmlEncode metodu HTML içeriğini güvenli bir şekilde kodlarken, HtmlDecode metodu bu kodlanmış içeriği orijinal haline döndürmek için kullanılır. HtmlRaw ise, ASP.NET Razor sayfalarında veya Razor View Engine kullanılarak HTML içeriğinin doğrudan render edilmesini sağlar.

Share: