Aracılığıyla paylaş


HttpCookie.HttpOnly Özellik

Tanım

Tanımlama bilgisinin istemci tarafı betiği tarafından erişilebilir olup olmadığını belirten bir değeri alır veya ayarlar.

public:
 property bool HttpOnly { bool get(); void set(bool value); };
public bool HttpOnly { get; set; }
member this.HttpOnly : bool with get, set
Public Property HttpOnly As Boolean

Özellik Değeri

Boolean

true tanımlama bilgisi özniteliğine HttpOnly sahipse ve istemci tarafı betiği aracılığıyla erişilemiyorsa; aksi takdirde, false. Varsayılan değer: false.

Örnekler

Aşağıdaki kod örneği, bir HttpOnly tanımlama bilgisinin nasıl yazdığını gösterir ve ECMAScript aracılığıyla istemci tarafından nasıl erişilmediğini gösterir.

<%@ Page Language="C#" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    void Page_Load(object sender, EventArgs e)
    {
        // Create a new HttpCookie.
        HttpCookie myHttpCookie = new HttpCookie("LastVisit", DateTime.Now.ToString());

        // By default, the HttpOnly property is set to false 
        // unless specified otherwise in configuration.

        myHttpCookie.Name = "MyHttpCookie";
        Response.AppendCookie(myHttpCookie);

        // Show the name of the cookie.
        Response.Write(myHttpCookie.Name);

        // Create an HttpOnly cookie.
        HttpCookie myHttpOnlyCookie = new HttpCookie("LastVisit", DateTime.Now.ToString());

        // Setting the HttpOnly value to true, makes
        // this cookie accessible only to ASP.NET.

        myHttpOnlyCookie.HttpOnly = true;
        myHttpOnlyCookie.Name = "MyHttpOnlyCookie";
        Response.AppendCookie(myHttpOnlyCookie);

        // Show the name of the HttpOnly cookie.
        Response.Write(myHttpOnlyCookie.Name);
    }
</script>


<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
<script type="text/javascript">
function getCookie(NameOfCookie)
{
    if (document.cookie.length > 0) 
{ 
    begin = document.cookie.indexOf(NameOfCookie+"="); 
    if (begin != -1)
   { 
    begin += NameOfCookie.length+1; 
      end = document.cookie.indexOf(";", begin);
      if (end == -1) end = document.cookie.length;
      return unescape(document.cookie.substring(begin, end));       
      } 
  }
return null;  
}
</script>

<script type="text/javascript">

    // This code returns the cookie name.
    alert("Getting HTTP Cookie");
    alert(getCookie("MyHttpCookie"));

    // Because the cookie is set to HttpOnly,
    // this returns null.
    alert("Getting HTTP Only Cookie");
    alert(getCookie("MyHttpOnlyCookie"));

</script> 


</body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    
    ' Create a new HttpCookie.
    Dim myHttpCookie As New HttpCookie("LastVisit", DateTime.Now.ToString())

    ' By default, the HttpOnly property is set to false 
    ' unless specified otherwise in configuration.

    myHttpCookie.Name = "MyHttpCookie"
    Response.AppendCookie(myHttpCookie)

    ' Show the name of the cookie.
    Response.Write(myHttpCookie.Name)

    ' Create an HttpOnly cookie.
    Dim myHttpOnlyCookie As New HttpCookie("LastVisit", DateTime.Now.ToString())

    ' Setting the HttpOnly value to true, makes
    ' this cookie accessible only to ASP.NET.

    myHttpOnlyCookie.HttpOnly = True
    myHttpOnlyCookie.Name = "MyHttpOnlyCookie"
    Response.AppendCookie(myHttpOnlyCookie)

    ' Show the name of the HttpOnly cookie.
    Response.Write(myHttpOnlyCookie.Name)

  End Sub
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
<script type="text/javascript">
function getCookie(NameOfCookie)
{
  if (document.cookie.length > 0) 
  { 
    begin = document.cookie.indexOf(NameOfCookie+"="); 
    if (begin != -1)
    { 
    begin += NameOfCookie.length+1; 
      end = document.cookie.indexOf(";", begin);
      if (end == -1) end = document.cookie.length;
      return unescape(document.cookie.substring(begin, end));       
    } 
  }
  return null;  
}
</script>

<script type="text/javascript">

// This code returns the cookie name.
alert("Getting HTTP Cookie");
alert(getCookie("MyHttpCookie"));

// Because the cookie is set to HttpOnly,
// this returns null.
alert("Getting HTTP Only Cookie");
alert(getCookie("MyHttpOnlyCookie"));

</script> 

</body>
</html>

Açıklamalar

Microsoft Internet Explorer sürüm 6 Service Pack 1 ve üzeri, HttpOnlyçalınmış tanımlama bilgilerine neden olan siteler arası betik oluşturma tehditlerini azaltmaya yardımcı olabilecek bir tanımlama bilgisi özelliğini destekler. Çalınan tanımlama bilgileri, ASP.NET oturum kimliği veya form kimlik doğrulama bileti gibi kullanıcıyı tanımlayan hassas bilgiler içerebilir ve saldırgan tarafından kullanıcı olarak maskelenmek veya hassas bilgiler elde etmek için yeniden yürütülebilir. Uyumlu bir tarayıcı tarafından bir HttpOnly tanımlama bilgisi alındığında, istemci tarafı betiğine erişilemez.

Dikkat

özelliğini true olarak HttpOnly ayarlamak, ağ kanalına erişimi olan bir saldırganın tanımlama bilgisine doğrudan erişmesini engellemez. Buna karşı korunmaya yardımcı olmak için Güvenli Yuva Katmanı (SSL) kullanmayı göz önünde bulundurun. İş istasyonu güvenliği de önemlidir çünkü kötü amaçlı bir kullanıcı, meşru bir kullanıcının kimliğine sahip bir Web sitesine erişim elde etmek için açık bir tarayıcı penceresi veya kalıcı tanımlama bilgileri içeren bir bilgisayar kullanabilir.

Şunlara uygulanır