ตามที่คุณพูดถึงคำตอบของ @Developer ฉันอาจเข้ารหัส HTML ในอินพุตของผู้ใช้ หากคุณกังวลเกี่ยวกับ XSS คุณอาจไม่จำเป็นต้องป้อนข้อมูลของผู้ใช้ในรูปแบบดั้งเดิมดังนั้นคุณอาจหลบหนีได้ (และแทนที่ช่องว่างและบรรทัดใหม่ในขณะที่คุณอยู่ที่นี่)
โปรดทราบว่าการหลีกเลี่ยงการป้อนข้อมูลหมายความว่าคุณควรใช้ @ Html.Raw หรือสร้าง MvcHtmlString เพื่อแสดงการป้อนข้อมูลนั้น
คุณสามารถลอง
System.Security.SecurityElement.Escape(userInput)
แต่ฉันคิดว่ามันจะไม่หนีช่องว่างเช่นกัน ดังนั้นในกรณีนี้ฉันขอแนะนำให้ใช้. NET
System.Security.SecurityElement.Escape(userInput).Replace(" ", " ").Replace("\n", "<br>")
ในการป้อนข้อมูลของผู้ใช้ และหากคุณต้องการเจาะลึกการใช้งานบางทีคุณสามารถแยกวิเคราะห์ XML ของอินพุตของผู้ใช้ (หรือเล่นกับนิพจน์ทั่วไป) เพื่ออนุญาตเฉพาะชุดแท็กที่กำหนดไว้ล่วงหน้า ตัวอย่างเช่นอนุญาต
<p>, <span>, <strong>
... แต่ไม่อนุญาต
<script> or <iframe>