웹언어로 웹페이지를 코딩 할 때의 필수 규칙.

웹페이지는 기본적으로 HTML로 구성하며
웹언어로 만들더라고 마지막 출력물은 HTML
즉, HTML을 잘 만드는게 목표?


이 게시물은 HTML+PHP 를 기준으로 설명을 합니다.

  • htmlspecialchars()를 제발 좀... 사용하라!
    • <,>,&,",' 등이 엔티티로 바꿔서 출력된다.
      사용 안하여 그대로 출력될 경우,
      XXS 등의 공격을 받을 수도 있다.
    • <input name="search" type="text" value="<?=$_GET['search']?>" />
      ->
      <input name="search" type="text" value="<?= htmlspecialchars($_GET['search'])?>" />
    • PHP의 값을 HTML로 출력한다면 꼭 사용하라!
  • form의 action에 $PHP_SELF는 필요 없다.
    • $PHP_SELF(= $_SERVER['PHP_SELF']) 은 현재의 URL의 웹 파일 경로를 나타내기 위한것이지만
      form 태그의 action에서 <form action=""> 처럼해도 현재의 URL을 나타낸다.(HTML규칙에 위배되지도 않는다!)
      즉, 빈값이 현재 페이지를 의미한다.
    • $PHP_SELF 가 문제가 되는 이유는
      http://xxxx.com/test.htm/'"><script>{{스크립트코드}}</script>?test=test1 (굵은 부분이 경로 조작)
      위처럼 할 경우 $PHP_SELF는  /test.htm/'"><script>{{스크립트코드}}</script> 가 되버려서
      결과적으로
      <form action="/test.htm/'"><script>{{스크립트코드}}</script>" >
      처럼 되어서
      {{스크립트코드}}가 실행되어 버린다.
    • 여기서도 htmlspecialchars()를 사용했다면 에러는 나겠지만, {{스크립트코드}}는 동작되지 않는다.
      꼭 써야한다면, htmlspecialchars()를 사용하라! 제발...좀...
    • 문제점 (XXS)
      • 스크립트 코드에 쿠키값을 다른 사이트로 전송하게 만들었다면?
        • 쿠키를 유출해서 타인이 로그인 할 수도 있다.
      • 악의적으로 URL을 링크시켜 놓고 그 링크에 방문한다면?
        • 방문하는것 만으로도 공격을 당하게 된다.



댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
ui_treemap new 2
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자