- 하드 마이그레이션
- asp.net core Select
- Mac Oracle
- asp.net Select
- php 캐쉬제거
- asp ftp
- ViewBag
- django 엑셀불러오기
- 바코드 생성하기
- 원격ftp
- XSS방어
- 타임피커
- SSD 복사
- TempData
- XSS PHP
- 강제이동
- simpe ftp
- jquery 바코드생성
- swagger 500 error
- 바코드 스캔하기
- 하드 윈도우 복사
- 맥 오라클설치
- asp.net dropdownlist
- ViewData
- javascript redirection
- 말줄임표시
- 404에러페이지
- ASP.Net Core 404
- asp.net core swagger
- javascript 바코드 생성
웹개발자의 기지개
[PHP] XSS 방어용 필터링 하기2 (주소창에서 바로 막기) 본문
[PHP] XSS 방어용 필터링 하기1 (GET/POST 변수들 막기) (tistory.com)
[PHP] XSS 방어용 필터링 하기1 (GET/POST 변수들 막기)
XSS 방어용 관련 소스를 만들어봤다. 최상단 include 부에 제일 먼저 넣어 삽입해 두자. post 방식의 경우 에디터의 태그기능까지 htmlspecialchars() 함수로 인해 모두 막아버리기 때문에 유념하도록 하
wonpaper.tistory.com
앞전에 포스팅 글은 도메인주소와 파일명뒤 GET/POST 방식으로 XSS 막는 방법이라 할 수 있는데,
이번에는 도메인자체로 XSS 를 막아보도록 하자.
[1] https://도메인/test.php/"><script>alert(47)</script> 으로 동작을 하는지 체킹해볼것.
[2] https:// 도메인/test.php?page=3"<script>alert(343)</script> 으로 ? 뒤에 GET 방식으로도 XSS 제거 되는지 체킹해볼것.
javascript 가 동작하는지 체킹해보자.
http://도메인/파일명/"><script>alert(47)</script>
/"><script>alert(47)</script>
물론 404 Not Found 처리를 해도 되겠지만, 필자는 유효하지 않은 도메인과 파일명으로 직접 들어올때는 메인페이지로 강제 이동 시켰다.
아래의 소스에서 404 Not Found 처리하려면
header("HTTP/1.0 404 Not Found"); 으로 변경하면 되겠다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?
// 현재 파일의 경로를 얻어옵니다.
$currentURI = $_SERVER['REQUEST_URI'];
// URI에서 GET 변수를 제외한 부분을 가져옵니다.
$uriWithoutQuery = strtok($currentURI, '?');
// 예시로 허용되지 않는 문자열을 제거하고자 하면, 아래와 같이 사용할 수 있습니다.
$allowedCharacters = '/^[a-zA-Z0-9\/_.-]+$/'; // 허용된 문자 집합
$uriWithoutQueryCleaned = preg_replace('/[^a-zA-Z0-9\/_.-]/', '', $uriWithoutQuery); // 허용되지 않는 문자열 제거
// URI가 정상적이지 않은 경우에는 메인 페이지로 리다이렉트합니다.
if ($uriWithoutQueryCleaned !== $uriWithoutQuery) {
header("Location: /"); // 메인 페이지로 리다이렉트
exit;
}
?>
|
cs |
'PHP' 카테고리의 다른 글
[PHP] 2차 연관배열에서 특정 필터순서로 배열 요소 재정렬하기 (1) | 2024.04.26 |
---|---|
[PHP] 큰 이미지 업로드시 썸네일 이미지 생성중에 에러날때 (thumnail) (1) | 2024.04.17 |
[PHP] XSS 방어용 필터링 하기1 (GET/POST 변수들 막기) (0) | 2024.04.16 |
[PHP] Ajax JSON 형태로 DB내의 데이터값 불러오기 (0) | 2024.04.04 |
[PHP] 초간단 캡차, 스팸방지 기능 만들기1 (0) | 2024.03.26 |