그누 버그란이 없어서 여기다 올려 봅니다. > 십년전오늘

십년전오늘

10년전 추억의 책장을 넘기며

그누 버그란이 없어서 여기다 올려 봅니다. 정보

그누 버그란이 없어서 여기다 올려 봅니다.

본문

그누 버그란이 없어서 여기다 올려봅니다.
 
현재 그누보드 언어팩을 작업중인데 작업하면서 발견한게 write_update.php에서 빈 제목이나 빈 내용에 대한 체크가 없네요. 아니 있네요. 그런데 보니까 다음과 같습니다.
 
if (!isset($_POST['wr_subject']))
 
그런데 빈 제목이나 ' '이런 값이 들어가도 isset은 성립됩니다. $_POST['wr_subject'] = ''인 경우도 변수는 존재한다고 보니까요.
 
정확히 체크하려면 if(!strlen(trim($_POST['wr_subject'])))로 되어야 할 것 같습니다.
 
자바스크립트가 오류나면 write.skin.php에서 required 검사를 못하는 경우가 생길 텐데 그럼 빈 제목의 글이 올라가게 됩니다.
 
실제로 언어팩 작업을 하면서 자바스크립트 오류가 생겼는데 전송하는데는 문제가 없어서 글쓰기 버튼을 누르니 빈 제목과 빈 내용을 가진 글이 등록이 되어 결국 어드민으로 접속해서 지운 사례가 생겼습니다.
 
예전에 빈글과 빈 내용이 왜 생기는지 질문이 올라온 적이 있었는데 그 때는 이해가 안갔는데 지금은 알 것 같네요...

댓글 전체

$wr_subject = ' '일경우도 있으므로 그냥empty는 안됩니다.

그리고 마찬가지로 내용이 비어있을 수도 있으므로
if (!strlen(trim($_POST['wr_content'])) || preg_match('/^( | )+$/i', trim($_POST['wr_content'])))로 내용을 체크하면 될 것 같습니다. 뒤의 preg_match는 위지윅 에디터 사용시 공백값을 체크하기 윈한 겁니다.
사용자 form에서 처리가 대부분 되지만 위에서 제가 예를 드린 것처럼 javascript 오류가 생기거나(의도적으로 일으키기도 합니다) 혹은 skin의 form에서 처리를 하지 않는다거나 하면 그럴 가능성이 생기는 거죠.
"PHP 보안 몇줄의 코드로 안전하게" 라는 책에서...

2중 3중의 방어벽을 세우는것이 기초라고 했습니다.

즉.. 폼검사할때에도.. 하고..
update 에서도 하면 더더욱 좋겠죠^^
전체 130,530
십년전오늘 내용 검색

회원로그인

진행중 포인트경매

  1. 참여1 회 시작24.04.25 20:23 종료24.05.02 20:23
  2. 참여80 회 시작24.04.19 15:40 종료24.04.26 15:40
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT