2012-10-02 67 views
0

我想在瀏覽器上顯示"[email protected]"。我知道顯示這樣的電子郵件地址是不安全的。所以,當我們查看源代碼時,它顯示爲一個javascript.Is這可能與剃刀。在瀏覽器中顯示電子郵件地址時,我使用codeigniter php framework safe_email()用razor asp.net在瀏覽器中顯示電子郵件地址

+0

不知道這是你所要求的,但試圖把它像:me%40mymail.com – Bardo

回答

0

您使用剃鬚刀的事實是無關緊要的。保持地址收集器安全的電子郵件地址的唯一方法是在頁面中對其進行混淆處理,然後使用客戶端腳本對其進行反混淆處理以獲得適當的客戶端。我喜歡使用人類可讀的混淆,因爲不禁用禁用腳本的用戶。這是我做的(使用MVC Web窗體語法):

String emailAddress = "[email protected]"; 

public static String Escape(String s) { 
    StringBuilder sb = new StringBuilder(); 
    foreach(Char c in s) { 
     sb.Append('%'); 
     Int32 ic = (Int32)c; 
     String hex = ic.ToString("X2"); // convert to hexadecimal 
     sb.Append(hex); 
    } 
    return sb.ToString(); 
} 

<span id="email"><%= Html.Encode(emailAddress.Replace("@", "[email protected]")) %></span> 

<script type="text/ecmascript"> 
    document.getElementById("email").innerText = unescape("<%= Escape(emailAddress) %>"); 
</script> 

逃離文本從收割機屏蔽他們,但腳本會自動顯示它有管轄權的瀏覽器。沒有腳本的用戶會看到一個人類可讀的混淆地址,他們可以輕鬆地修正它們自己。

+0

這可以用來在網頁上做助手嗎? – ktm

+0

是的,你可以將'Escape'函數作爲HtmlHelper,但是你需要爲轉義客戶端腳本考慮更聰明的東西。 – Dai

相關問題