piadream

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

· 2023-05-08 (월) 21:19:19 · 1924 · 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 로 하시는게 좋습니다.
2023-06-05 (월) 08:33:10
1) preg_replace() 를 사용해도 인젝션이 가능합니다. 악의적인 사용자가 다양한 입력을 시도할 수 있기 때문에, 필요한 입력 검증과 필터링 로직을 추가해야 하구요.

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

개발자팁

5,403건

개발과 관련된 유용한 정보를 공유하세요. 질문은 QA에서 해주시기 바랍니다.

+
분류 제목 글쓴이 날짜 조회
기타 23-07-03 조회 1,569
MySQL 23-07-02 조회 2,238
JavaScript 23-07-01 조회 1,872
PHP 23-06-30 조회 2,870
MySQL 23-06-29 조회 7,639
node.js 23-06-28 조회 1,903
node.js 23-06-27 조회 1,474
PHP 23-06-26 조회 1,704
PHP 23-06-25 조회 1,731
PHP 23-06-24 조회 1,210
PHP 23-06-22 조회 1,501
PHP 23-06-20 조회 1,574
기타 23-06-19 조회 1,841
23-06-17 조회 1,246
기타 23-06-18 조회 2,303
PHP 23-06-17 조회 1,600
JavaScript 23-06-16 조회 2,295
PHP 23-06-15 조회 1,961
23-05-16 조회 1,178
기타 23-06-13 조회 1,611
PHP 23-06-05 조회 1,696
PHP 23-05-28 조회 2,013
기타 23-05-23 조회 2,353
PHP 23-05-19 조회 1,824
PHP 23-05-18 조회 1,965
PHP 23-05-08 조회 1,925
JavaScript 23-04-10 조회 1,706
MySQL 23-04-08 조회 1,929
MySQL 23-03-15 조회 1,944
PHP 23-03-14 조회 2,318