2010-07-16 4 views
1

jquery datatables와 MS XSS 라이브러리를 사용하고 있습니다. Html 인코딩에 관한 질문

나는이

AntiXss.HtmlEncode(MyDate.ToString("MM/dd/yyyy h:mm tt")))); 

이 그래서 그 모든 인코딩이

07/22/2010 4:04 PM 

렌더링했다. 어떤 이유로 든 이것은 데이터 테이블을 엉망으로 만든다. 더 이상 정렬 할 방법을 알 수 없습니다.

왜 슬래시와 점을 인코딩합니까? 뭐가 그렇게 나쁘니? 이 브라우저에 표시 될 때 그래서 datatables 그냥 인코딩 된 버전에서 소요 추측하고 그것으로 무엇을 해야할지 doesnot 오후 4시

: / 2010 년 5 월 4 일 22 / 07처럼 보인다.

어떻게해야합니까? 데이터를 인코딩하려고하지만 정렬이 엉망인 경우에도 좋지 않습니다. 대신 안전한 HTML 조각을 사용해야합니까?

답변

0

사실 슬래시와 점을 포함하는 XSS 공격에 대해서는 알지 못합니다. 그러나 많은 문자가 htmlentitiy 동등한 있으며이 변환을 만들고 있지만이 보안 우려로 인해 생각하지 않습니다.

보안 측면에서 불쾌한 문자는 4 : '"<>입니다. 또 다른 한가지 방법은 XSS를 방지하기 위해 사용자 입력에 AntiXss.HtmlEncode() 메서드를 사용해야합니다. 공격자의 영향을받지 않는 날짜에이 기능을 실행하는 것은별로 의미가 없습니다 ... (당연히 시간 여행자를 방어하지 않는 한)

+0

글쎄 날짜는 사용자가 설정합니다. 데이터베이스에 들어가려고하면 죽을 것입니다 (datetime이 아니기 때문에). 보조 노트에서 db에 대한 입력을 인코딩하거나 모든 것을 입력하고 출력을 사용자에게 인코딩하는 것이 더 좋습니다. 아니면 둘 다합니까? – chobo2

+0

숫자는 int로 저장되는 것이 어떻습니까? 그들은 int의 거짓말에서 그것을 16 진수로 쓸 수 있습니까? – chobo2

+0

이제 생각해 보니 데이트 할 때 네 말이 맞지 않을거야. 나는 사용자가 아무것도 (그것을 문자열로 변경되면서) 이후 변경할 수 있다고 생각 같아요하지만 날짜가 datetime datetime에 저장되면 문자열을 만드는 것이 어렵다고 생각합니다. . 그래서 int, bits 등과 같은 것이 될 것이라고 추측합니다. – chobo2

0

날짜를 인코딩하는 대신 위생 검사를 수행하십시오 날짜 문자열의 형식. 잘 형성된 날짜가 있으면 대본 주사 나 다른 속임수의 위험이 없습니다.