웹소스코딩가이드

웹소스코딩가이드

이런 기본 모른다면 코딩하지마. 뒤에 사람이 골치아퍼!

  • URL / POST Send Data 
    • URL(or POST로 넘기는 값)에서는 기본적으로 한글을 표현할 수 없다. 그러므로 규칙에 맞게 변경해줘야한다.
      • 하지만 브라우저에서는 무시하고 처리해줄 수 있다.(오작동 가능성이 있음)
    • URL(or POST로 넘기는 값)을 구성하는 값이 <form>에서 submit되지 않는 이상, 밑의 함수를 사용해서 수동 처리 해줘야한다!
    • 관련함수
      • urlencode() / urldecode()
      • rawurlencode() / rawurldecode()  : 스페이스와 +를 변경하지 않는다.
        • 관습적으로 URL에서는 스페이스를 +로 바꿔서 사용한다. rawurlencode를 사용하면 %20을 대신 사용한다.
    • 관련 문제점
      • base64_encode(url) 를 사용할 경우 변환된 값에 +가 들어있을 수 있다. 이 때 +가 넘어오면 php에서는 스페이스로 보이게 된다. 즉, 넘어온 글자가 깨질 수 있다.
        • 주의! : url에 값을 안 깨지기 위해서 base64를 사용하지 마라!(바보짓이다!)
    • form을 사용시
      • <form> 속에서 <input>에 값을 넣고 submit 할경우는 문제 없다. 브라우저가 전송시 변경해서 보내준다!
  • HTML
    • <script> 속 주석(CDATA)표시
      • <script type="~~~~">
        // <!-- (or <![CDATA[ )
        // --> (or ]]>)
        </script>
        • 위처럼 안 해도 실제 브라우저 사용에서는 문제 없다.
          • 브라우저에서 저 부분을 알아서 처리해준다.
        • 해야하는 이유
          • HTML에서의 &, < , > 등을 표현할 때는 직접 표현할 수 없고, html 엔티티 형식으로 나타내야하는데, JS의 연산자 등에서는 & , < , >를 직접 써야하므로 HTML 규칙에 어긋나게 된다.
            그 부분을 무시하게 하기 위해서 주석처리( xHTML은 CDATA처리)를 해주게 된다.
    • HTML entity
      • HTML에서는 & , < , > 등을 직접나타내면 안된다.
        &amp; , &lt; , &gt; 로 변환해서 나타내야한다.
      • HTML entity 는 HTML속 attribute나 text-node 에서 전부 적용되야 HTML 규칙에 맞게된다.
        • 적용 안해도 브라우저에서 대부분 처리해준다.
          • HTML validator는 통과할 수 없다.
  • Magic Quotes (PHP)
    • Magic Quotes 란 
      • When on, all ' (single-quote), " (double quote), \ (backslash) and NULL characters are escaped with a backslash automatically. This is identical to what addslashes() does. 
        (메뉴얼 발취)
      • ' , " , \ , NULL 글자에 대해서 자동으로 \를 붙여준다.(addslashes() 참고)
      • 효과는 SQL-injection 방지...
      • PHP 5.3에서는 DEPRECATED , PHP6에서는 REMOVE다. 즉, 사용하지 않는 것을 기준으로 작업하라
    • Magic Quotes 문제점
      • \ 자동으로 \가 붙어서 \\ 형식이 되는데, DB가 ORACLE 일 경우 escape 처리자가 \가 아니라서
        게시판 등에서 수정을 할 때마다
        \\ -> \\\\ -> \\\\\\\\ 
        처럼 된다.
        ' 를 기준으로 보면
        \' -> \\' -> \\\\'
        처럼 된다.
댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자