테스트 사이트 - 개발 중인 베타 버전입니다

스크립트 해킹 방어 구문 간단 셀프 작성한 것인데... 웬지 쎈 소스

· 2년 전 · 1179 · 3

- 직접 작성한  php 해킹해서 php 통째 다운로드?도 할수 있는 북한같은 해킹기술을 방어겸.

- 인위적 스크립트 뚫기 방어 소스.

- 구글 웹 캐쉬. archive.org 그외 사이트 캐쉬 해먹기 방어가 아닐까 싶은

 

$tab= preg_replace("/[^a-zA-Z0-9]*/i", "", $_GET['tab']);
$sql="selct `tab_id` from tab_list where tab_id like '$tab'";
$result=mysqli_query($dbconn,$sql);
$check=mysqli_num_rows($result);
if($check < 1 ) { echo " 존제하지 않는 게시판 입니다."; exit();}
$sql2="selct `status` from check_board where tab_id like '$tab'";
$result2=mysqli_query($dbconn,$sql2);
$info=mysqli_fetch_assoc($result2);
$info=stripslashes($rule['status']);
$info=preg_replace("/[^a-z]*/i", "", $info);
if($info != "pass") { echo "요청에 제한이 걸려져 있습니다";exit();}
 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 3개

prepare 안쓰시는 이유가 있나요?
스크립트 인젝션하면 php 검열 무효화 가능합니다.
백엔드 node.js 로 하시는게 좋습니다.
1) preg_replace() 를 사용해도 인젝션이 가능합니다. 악의적인 사용자가 다양한 입력을 시도할 수 있기 때문에, 필요한 입력 검증과 필터링 로직을 추가해야 하구요.

2) LIKE 절을 사용해서 SQL 쿼리를 실행하고 있는데, 위의 소스처럼 $tab 값을 직접 쿼리에 삽입하는 것은 SQL 삽입 공격의 위험을 초래할 수 있습니다. 매개변수화된 쿼리나 prepare를 사용해야합니다.

게시글 목록

번호 제목
17657
17655
17654
17653
17652
17651
17650
17642
17633
17632
17631
17630
17628
17624
17623
17620
17618
17617
17614
17612
17611
17610
17609
17608
17607
17604
17603
17602
17600
17594