2021年9月28日 星期二

[研究][ASP.NET] 防 XSS 的 HtmlSanitizer ( HTML消毒劑)

[研究][ASP.NET] 防 XSS 的 HtmlSanitizer ( HTML消毒劑)

2021-09-24
2022-01-03 修訂
2022-06-09 補 mailto

在資料填寫畫面,不管是 TextBox 填寫純文字,或 ckeditor 填寫 HTML內容,要考慮 跨網站指令碼(英語:Cross-site scripting,通常簡稱為:XSS)的過濾處理。

NuGet

https://www.nuget.org/packages/HtmlSanitizer/

官方網站

https://github.com/mganss/HtmlSanitizer

WebForm.aspx.cs

        public static string MyAntiXssFilter(object inputObject)
        {
            string inputStr = "";
            if (inputObject != null)
            {
                inputStr = inputObject.ToString();
            }
            var sanitizer = new HtmlSanitizer();
            sanitizer.AllowedAttributes.Add("class");
            sanitizer.AllowedAttributes.Add("id");
            var sanitized = sanitizer.Sanitize(inputStr);
            return sanitized;
        }

WebForm.aspx


            e.NewValues["內容"] = Common.MyAntiXssFilter(e.NewValues["內容"]);

若要把每一項都過濾


    foreach (DictionaryEntry entry in e.NewValues)
    {
      e.NewValues[entry.Key] = Common.MyAntiXssFilter(entry.Value);
}


2022-01-03

注意,MyAntiXssFilter 參數若為網址,& 會變成 &  ,無法傳1個以上參數,改成


public static string MyAntiXssFilter(object inputObject)
{
    string inputStr = "";
    if (inputObject != null)
    {
        inputStr = inputObject.ToString();
    }
    var sanitizer = new HtmlSanitizer();
    sanitizer.AllowedAttributes.Add("class");
    sanitizer.AllowedAttributes.Add("id");
    sanitizer.AllowedSchemes.Add("mailto"); // 允許 <a href="mailto:"
    //sanitizer.AllowedAttributes.Add("&"); // 沒用; 若處理網址, & 會變成 &amp;
    var sanitized = sanitizer.Sanitize(inputStr);
    sanitized = sanitized.Replace("&amp;", "&");
    return sanitized;
}

(完)

[研究]Embarcadero RAD Studio 2021 11.0 Free 30 Days Trial 安裝

[研究]Embarcadero RAD Studio 2021 11.0 Free 30 Days Trial 安裝

2021-09-28

30天試用版申請下載 (序號會 Email 寄到信箱)

https://www.embarcadero.com/products/rad-studio/start-for-free?aldSet=en-GB





















Days Let : 92 ,但照這邊的標題應該是30天試用

https://www.embarcadero.com/products/rad-studio/start-for-free



(完)

相關

[研究]Embarcadero RAD Studio 11 各版本比較
https://shaurong.blogspot.com/2021/09/embarcadero-rad-studio-11.html

[研究] Embarcadero Delphi Community Edition 2021 v10.4.2 (2021-02-21) 安裝https://shaurong.blogspot.com/2021/09/embarcadero-delphi-community-edition.html

2021年9月25日 星期六

[研究] HashCalc 2.02 免費單機計算 Hash 工具

[研究] HashCalc 2.02 免費單機計算 Hash 工具 

2021-09-25

https://www.slavasoft.com/hashcalc/

軟體雖老,但介面是目前比較喜歡的。




(完)

[研究] Embarcadero Delphi Community Edition 2021 v10.4.2 (2021-02-21) 安裝

[研究] Embarcadero Delphi Community Edition 2021 v10.4.2 (2021-02-21) 安裝 

2021-09-25
2022-06-07 測試,Delphi 社群版仍是 10.4.2 版

RAD Studio 11 於 2021-09-09 問世,本來想 Delphi 11 社群版是否也問世,所以來安裝看看,結果仍是 10.4.2 版

https://www.embarcadero.com/products/delphi/starter/free-download



























******************************************************************************

後來又還原 VM 快照,用 RAD Studio 10.4.2 的 iso 安裝看看 ( 免得邊下載邊安裝 ),結果失敗,所以不能用該 iso 安裝 Delphi 10.4.2 社群版。

( 有用 MD5 驗證過 .iso 正常沒損壞 )

https://altd.embarcadero.com/download/radstudio/10.4/RADStudio-1042-4203.iso


(完)