팁과노하우

2025.01.17 02:02

SQL Injection, XSS 보안 강화하기

update 페이지를 직접 작성하시는 경우 그누보드 내장함수 조합으로

SQL Injection, XSS 공격을 방어할 수 있습니다.


보통 update.php 에서 


$aaa = isset($_POST['aaa']) ? $_POST['aaa'] : '';

$sql = " UPDATE table_name SET aaa = '{$aaa}' WHERE bbb = '{$bbb}' ";

sql_query($sql);


이렇게 하기 마련인데, 이렇게되면 공격에 취약해질 수 있습니다.


사용자가 입력 > 저장이 가능한 input 에 스크립트 파일을 추가하는 내용을 입력해서 저장되게하고,

스크립트가 실행되면 쿠키 값이나 로컬 스토리지 및 세션 스토리지 등의 정보를 수집해서 서버로 전송할 수도있고, 

스크린샷이 캡쳐되어 보내질 수도 있는 위험한 상황이 올 수 있습니다.


일반 문자의 경우

$aaa = isset($_POST['aaa']) ? strip_tags(clean_xss_attributes($_POST['aaa'])) : '';


숫자의 경우

$aaa = isset($_POST['aaa']) ? intval($_POST['aaa']) : '0';


이렇게 그누보드의 내장 함수와 혼용해서 사용하시면 안전해집니다.


DB로 저장되는 insert 나 update 에서는

$sql = " UPDATE table_name SET aaa = '".sql_escape_string($aaa)."' WHERE bbb = '{$bbb}' ";

이렇게 사용해서 SQL Injection 을 방어할 수 있습니다.


저희 리빌더도 보안에 신경을 써야 될 것같습니다.

감사합니다.


  • 공유링크 복사
    미니홈 쪽지 구독하기
    구독하고 알림받기