기존 사용하는 애드온에서 이미 작성된 코드를 사용했는데 그냥 글 작성이 되어 버리는 것 같습니다.
금칙어가 확인되면 별도 php파일의 함수에
header("Content-Type: text/xml; charset=UTF-8");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
if($var)
printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<response>\r\n<error>-1</error>\r\n<message>".$message."</message>\r\n</response>",$var);
else
printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<response>\r\n<error>-1</error>\r\n<message>".$message."</message>\r\n</response>");
위와 같은 코드로 메시지를 띄웁니다. 제가 직접 브라우저에서 금칙어 넣고 게시글 등록 눌러보면 메시지와 확인 버튼이 표시된 알림창이 잘 뜹니다.
그런데 위와 같은 것을 무력화하고 그냥 insert act가 진행될 수 있나요??
일반적인 브라우저가 아닐수도 있다는 의심이 되고 있습니다.
- 푸시앱에서 새글 작성시 푸시알림이 발생하지 않더군요.
그래서 그냥 직접 다른방식으로 코드를 바꿔 봤습니다.
$message = '금지어 또는 금지 소스가 포함되어 등록 할 수 없습니다.';
$this->act = 'true';
$this->stop($message);
위와 같이 코드를 작성하면 뚫을 수 없는건가요?
1.기존코드의 경우 저 메시지창 자체가 안뜨게 우회해서 글 작성을 성공할 수 있나요?
- 아니라면 필터링 자체를 통과했다고 밖에..
2. 1번 질문에서 우회할 수 있다면 두번째 변경한 코드는 우회하지 못하나요?
before_module_proc, procBoardInsertDocument 에서 금칙어 확인되면
$this->act = 'true';
$this->stop($message);
이렇게 처리되는데 이게 뚫리네요.
제가 직접 브라우저에서 글쓰기로 진입해서 해보면 차단되는 알림창 뜨고 더 진행이 안되는데....