저는 전자 상거래 선물 가게가있어 사용자가 수령인의 선물 카드를 작성할 수 있습니다.Html.Raw()를 안전하게 사용하고 있습니까?
카드를 작성하기 위해 사용자가 여러 줄로 된 텍스트 상자에 텍스트를 입력하게했습니다.
최종 검토 페이지에 기프트 카드를 표시 할 때, Html.Raw로 정보를 뱉어 내야 뉴 라인이 제대로 표시됩니다. 나는이 일을 해요 :
@(Model.GiftCard.Text != null ? Html.Raw(Model.GiftCard.Text.Replace(char.ConvertFromUtf32(13),"<br />")) : Html.Raw(""))
가 나는 사용자가-입력 된 값에 Html.Raw를 사용하여 위험 지역에 진입하고있어 것을 두려워 해요. 그러나 기프트 카드 입력 페이지로 돌아 가면 "이것은 내 기프트 카드입니다 (스크립트 태그) 경고 ('테스트'); (/ 스크립트 태그)"... 그래서 나는 그 점에서 .net가 어떤 악의적 인 항목도 잡는 것처럼 느낍니다.
나는 이렇게 진행하는 것이 안전할까요? 기프트 카드 입력 페이지가 악성 코드에 대한 유효성 검사를 실행하고 있기 때문에 나중에 HtmlRaw를 사용하여 나 자신을 넣는 개행 HTML을 표시하는 것이 좋습니다.
(실제 스크립트 태그 위의 (scripttag) 위의 내용은 stackoverflow에 표시됩니다.
필자는 허용되는 문자로 입력을 제한하는 입력란에 유효성을 검사하거나 값에 html.encode를 사용합니다. – Brian
허용되는 문자 만 허용하도록하는 데 도움이되는 예제 또는 링크가 있습니까? 그게 자바 스크립트에 (따라서, 당신은 그것을 해킹하고 어쨌든 다른 것을 게시 할 수 있습니까?) –
예 자바 스크립트 것입니다. 그렇습니다. 아마도 html.encode가 필드에 오게되어 주사 공격에 사용될 수있는 문자가 처리됩니다. 게시 할 수있는 JS 유효성 검사에 대해 알아볼 것입니다. – Brian