less than 1 minute read

웹페이지는 기본적으로 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을 링크시켜 놓고 그 링크에 방문한다면?
  • 방문하는것 만으로도 공격을 당하게 된다.

🔗original-link

Updated: