D

G5_ESCAPE_FUNCTION

· 2014-07-19 (토) 17:31:07 · 1018 · 1
common.php:87

$_POST = array_map_deep(G5_ESCAPE_FUNCTION, $_POST);

<form method=post>
<input name="s" value="한글" />
</form>

을 받아서

<?php

include 'common.php';
를 하고 나서

echo $s;
를 하면 문자셋 코드가 엉망이 되네요.

DB에 넣을지 안 넣을지 정한 것도 아닌데 무조건 G5_ESCAPE_FUNCTION()으로 처리하는 건 문제가 있네요.


------

common.php:
$result['url'] = $http.$_SERVER['SERVER_NAME'].$port.$user.$root;

이 코드는

<VirtualHost *:80>
ServerName abc.com
ServerAlias aac.com
</VirtualHost>

$_SERVER['SERVER_NAME']은 ServerAlias로 접속하는 경우 ServerName으로만 지정되네요.
|

댓글 1개

escape function을 일괄적으로 적용하는 것은 보안상 이유때문에 어쩔 수 없는 부분입니다.
escape function이 적용되지 않는 데이터가 필요하신 경우 stripslashes 함수를 사용하시면 됩니다.
한글이 깨지는 문제는 mysql_real_escape_string 함수의 문제로 그누보드5 최신버전에서는 addslashes 함수를
사용하도록 지정되어 있기 때문에 이상이 없습니다. 최신 버전으로 패치를 하지 않으셨다면 패치를 해보시기 바랍니다.
SERVER_NAME 지정부분은 $_SERVER['HTTP_HOST']를 사용하면 해결이 될 수 있습니다.
참고글 : http://sir.co.kr/bbs/board.php?bo_table=yc5_bug&wr_id=971
댓글을 작성하시려면 로그인이 필요합니다.

버그신고

4,191건

  문의게시판을 이용해 주세요 :) https://sir.kr/co_qa  

+
분류 제목 글쓴이 날짜
14-07-25
14-07-24
14-07-23
14-07-22
14-07-21
14-07-20
14-07-19
14-07-19
14-07-19
14-07-18
14-07-18
14-07-18
14-07-16
14-07-16
14-07-15
14-07-15
14-07-15
14-07-15
14-07-11
14-07-10