그누보드에서 인자값에 \ 자동으로 붙이는 코드가 어디있나요?
본문
안녕하세요.
그누보드 시스템에선 특정 특수문자를 인자값을 전달 시 특수문자 앞에 \ 가 붙는 것을 확인하였습니다.
ex)
' > \'
\ > \\
아마도 SQL 인젝션과 같은 보안상의 이유로 그누보드 시스템 자체적으로 어디선가 이를 정의한거 같은데, 위의 내용을 수행하는 코드가 어떤 파일에 있나요? 알려주신다면 감사하겠습니다.
답변 3
/lib/common.lib.php
funciton bad_tag_convert ($code) {
.........
이걸 찾으시는건가요?
// 검색어 특수문자 제거
function get_search_string($stx)
// XSS 관련 태그 제거
function clean_xss_tags($str)
// unescape nl 얻기
function conv_unescape_nl($str)
// 파일명에서 특수문자 제거
function get_safe_filename($name)
// QUERY STRING 에 포함된 XSS 태그 제거
function clean_query_string($query, $amp=true)
이중에서 필요핫니걸 찾으시면되지 않을까 싶네요
설명이 조금 복잡하긴한데요
common.php가 기본적으로 인클루드되고
"쌍따옴표, ' 따옴표 등의 문자에 대해서
array_map_deep 함수를 통해서
G5_ESCAPE_FUNCTION에 해당되는 내용이 호출되고
해당 내용은
sql_escape_string에 매핑되서
php함수인
addslashes
를 작동시킵니다.
그래서, 위의 질문과 같은 형태로 만들어진 값이 넘겨받게 됩니다.
이런게 싫으시면
//include_once('./_common.php');
와 같이 주석으로 막아보세요
글러면 원하시는 따옴표로 받을수있을겁니다만
보안은 책임질수 없겠죠