2010-07-12 2 views
0

이 올바른경고 여부

<a href="#" style="color:#FFF;"onclick="add('alert("Google !")');" id="cricket" tabindex="1" name="cricket">cricket</a> 
+4

Dunno. 시도해 봤어? : P – Matchu

+0

대답은 당신이하려는 일에 달려 있습니다. – Stephen

답변

1

onclick="add('alert("Google !")');"는 다음과 같이 해석되는 :

당신은 그렇지 않으면 문자열 종료, 내부 따옴표를 이스케이프해야합니다 : 그것은 add()가하는 일에 따라, 그 너머

onclick="add('alert(&quot;Google !&quot;)');" 

합니다.

+0

HTML에서 백 슬래시가 작동하지 않는다고 생각합니다. 나는 웹 사이트에'addslashes'를 사용하기 때문에 XSS 구멍을 찾을 수있었습니다. 실제로는 적용되지 않습니다. – Matchu

+0

@Matchu 긴 고정. 최근에 HTML로 너무 작게 작동합니다 ...;) – deceze

+0

Nice :) 명확한 설명에 찬성하여 응답이 취소되었습니다. – Matchu

1

번호

onclick="add('alert(" 

당신은 당신의 속성 값 내부의 완전한 자바 스크립트 문이없는 것입니다. 그 문자가 속성 값을 구분하는 데 사용 될 수 있기 때문에

일부 저자는 큰 따옴표 (")의 인스턴스를 인코딩하는 문자 엔티티 참조"&quot; "를 사용

-. http://www.w3.org/TR/html4/charset.html#h-5.3

(그리고 여담으로 :

  • 이 HREF = "#"을 사용하지 마십시오
      , build on stuff that works
    • 도 해결할 것이다 (unobtrusive JS를 사용
    • 고유 이벤트 (예 : onclick을 같은) 속성을 사용하지 마십시오 속성 사이에 공백을 넣어 잊지 마세요 스타일 속성, 별도의 프리젠 테이션 및 콘텐츠
    • 를 사용하지 마십시오 중첩 된 따옴표의 문제)
    • 수는 재치있는 천연 탭 순서 찬성)에서의 tabindex을 피하기