내 페이지에 HTML 입력 필드 인 텍스트 영역이 있습니다. 사용자가 특정 작업을 수행 한 후 사용자의 브라우저에 표시 될 확인 HTML을 등록 할 수 있습니다. 당신이 뭔가를 지불하고 페이팔 (paypal)을 확인한 것으로 상상할 수 있습니다. "pay for your purchase"라는 웹 사이트로 리디렉션됩니다. 이것은 이미 구현되었지만 이제는 사용자의 보안 (XSS/SQL Injection)에 대해 생각하고 있습니다.html을 데이터베이스에 안전하게 저장하는 방법
내가 알고 싶은 것은 <script> <embed> <object>
과 같은 특정 html 태그를 내 컨트롤러 작업 내에서 안전하게 필터링하는 방법입니다. 따라서 HTML 내에 악성 HTML가 있음을 감지하면 저장 전에 실행을 중지합니다.
[CustomHandleError]
[HttpPost]
[ValidateAntiForgeryToken]
[AccessDeniedAuthorize(Roles = "Admin,CreateMerchant")]
public ActionResult Create(MerchantDTO merchantModel)
{
if (ModelState.IsValid)
{
if (!IsSafeConfirmationHtml(merchantModel.ConfirmationHtml))
{
ModelState.AddModelError("ConfirmationHtml", "Unallowed HTML tags inputted");
return View("Create", merchantModel);
}
.
.
.
}
}
및
private bool IsSafeConfirmationHtml(string html)
{
if (html.ToLower().Contains("<script") || html.ToLower().Contains("<embed") || html.ToLower().Contains("<object"))
{
return false;
}
return true;
}
이 할 수있는 스마트 청소기 방법이 있나요 나의 IsSafeConfirmationHTML 정의됩니다 : 지금은 이런 식으로하고 있는가? 내 말은, "객체", "스크립트"등의 단어를 차단하는 잘못된 반응을 원하지는 않지만 ""을 "% 3C"또는 그와 같이 번역하는 인코딩에 속지 않기를 바랍니다. ..
Ontopic : 태그 안의 간격은 작동합니까? 예 : <script> alert("1"); </script >
?