bbs/write_update.php 파일 질문있습니다. 채택완료
훈훈훈훈훈
7년 전
조회 3,534
bbs/write_update.php 파일에 아래와 같은 부분이 있는데요
</p>
<p>$wr_subject = '';
if (isset($_POST['wr_subject'])) {
$wr_subject = substr(trim($_POST['wr_subject']),0,255);
$wr_subject = preg_replace("#[\\\]+$#", "", $wr_subject);
}
if ($wr_subject == '') {
$msg[] = '<strong>제목</strong>을 입력하세요.';
}</p>
<p>$wr_content = '';
if (isset($_POST['wr_content'])) {
$wr_content = substr(trim($_POST['wr_content']),0,65536);
$wr_content = preg_replace("#[\\\]+$#", "", $wr_content);
}
if ($wr_content == '') {
$msg[] = '<strong>내용</strong>을 입력하세요.';
}</p>
<p>
$wr_subject = preg_replace("#[\\\]+$#", "", $wr_subject);
$wr_content = preg_replace("#[\\\]+$#", "", $wr_content);
이거 두 부분은 무슨 의미로 사용되는 것인가요? 용도가 무엇인가요?
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
답변에 대한 댓글 4개
�
훈훈훈훈훈
7년 전
�
볼피드
7년 전
주석에도 써있듯이 common.lib 파일에선 파일명의 특수문자를 제거 하는거구요.
제목과 내용에서 저런 정규식이 써져있는건 $나 #이 php에서 사용되는 특수문자이기 때문입니다.
저게 들어가면 변수명으로 오인하기 때문에 오동작이 일어날 수도 있고 보안에 문제가 생길 수도 있어서 제거하게 되어있는 것 같습니다.
제목과 내용에서 저런 정규식이 써져있는건 $나 #이 php에서 사용되는 특수문자이기 때문입니다.
저게 들어가면 변수명으로 오인하기 때문에 오동작이 일어날 수도 있고 보안에 문제가 생길 수도 있어서 제거하게 되어있는 것 같습니다.
�
훈훈훈훈훈
7년 전
볼피드님 감사합니다 정확하게 이해했습니다.
�
마스타
7년 전
본문에 있는 정규식 구문만으로 해석해 봤을 때,
역슬래시(\) 를 제거하기 위한 구문으로 보입니다.
sql 구문에 역슬래시가 들어가면,
오류가 발생하거나 인젝션 공격이 될 수도 있습니다.
역슬래시(\) 를 제거하기 위한 구문으로 보입니다.
sql 구문에 역슬래시가 들어가면,
오류가 발생하거나 인젝션 공격이 될 수도 있습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
특수문자를 제거하고 있다는 정도는 이해가 갑니다.
www/common.lib.php 파일에서
[code]
// 파일명에서 특수문자 제거
function get_safe_filename($name)
{
$pattern = '/["\'<>=#&!%\\\\(\)\*\+\?]/';
$name = preg_replace($pattern, '', $name);
return $name;
}
[/code]
이렇게 전체 특수문자를 제거하는게 있는데요
그렇다면 $wr_subject = preg_replace("#[\\\]+$#", "", $wr_subject);
여기 부분에서는 무슨 특수문자를 제거 하는 건가요?
특히 내용 부분에서는 특수문자가 들어가면 안되는 건가요?
보통 내용 부분에는 여러가지 긴~ 문장을 사용하니 특수문자가 들어가는게 정상이 아닐까해서요
그리고 그 특수문자를 제거하는 이유가 궁금한겁니다.