그누보드는 왜 필터링을 시키는 걸까요? ㅡㅡ;
본문
구글에 $_SERVER['DOCUMENT_ROOT'] 검색하면 검색결과 잘 보여주잖아요.
근데, 그누보드에 $_SERVER['DOCUMENT_ROOT'] 검색하면 대괄호 등 필터링 시켜서 검색이 안 되죠.
※ 필터링 되어 보이는 검색어: _SERVERDOCUMENT_ROOT
DB에 저장시킬 때 안전한 코드로 변형해서 저장시킨 후,
값 조회할 때도 안전한 코드로 변형해 검색시키면 될텐데...
왜 검색조차 안 되게 다 필터링을 시키는 걸까요? ㅡㅡ;;
보안 상 안전하게 하면서도 구글처럼 검색 잘 되게 하는 건 도처히 안 되는 걸까요?
답변 3
https://github.com/gnuboard/gnuboard5/blob/master/lib/common.lib.php#L3248
를 다음처럼 수정해볼수 있습니다.
function get_search_string($stx)
{
// $stx_pattern = array();
// $stx_pattern[] = '#\.*/+#';
// $stx_pattern[] = '#\\\*#';
// $stx_pattern[] = '#\.{2,}#';
// $stx_pattern[] = '#[/\'\"%=*\#\(\)\|\+\&\!\$~\{\}\[\]`;:\?\^\,]+#';
// $stx_replace = array();
// $stx_replace[] = '';
// $stx_replace[] = '';
// $stx_replace[] = '.';
// $stx_replace[] = '';
// $stx = preg_replace($stx_pattern, $stx_replace, $stx);
// return $stx;
return sql_real_escape_string($stx);
$_SERVER['DOCUMENT_ROOT']와 같은 서버 변수를 필터링하는 것은 웹 애플리케이션 보안과 관련이 있습니다
특수기호 검색 사용할려면 풀면됩니다.
원치 않는 사람이 더많으니 사용하고자한다면 풀면됩니다.
그리고, 검색순위 부분은 기호에 대한 순위는 제외시키면 되지않을까요?
또한,
구글 검색 엔진이 $_SERVER['DOCUMENT_ROOT']와 같은 정보를 표시하는 경우도 있지만
일반적으로는 서버 변수나 민감한 정보를 웹 페이지에서 검색 가능하게 표시하는 것은 보안 측면에서 큰 위험을 초래할 수 있습니다.
답변을 작성하시기 전에 로그인 해주세요.