✔️Cross Site Scripting
XSS
스크립트 태그 안에 자바스크립트 사용
사용자를 특정 페이지로 보낼 수 있음, 악용 가능성 높음
ex)
<script>
alert("hi");
<script>
location.href="www.naver.com";
</script>
📌php가 가진 함수 중 cross site scripting을 방지하기 위한 두가지
크로스 사이트 스크립팅 방지 메서드 htmlspecialchars()
=>사용자가 변조할 수 있는 정보는 철저히 의심해야 한다.
입력된 정보가 출력되는 부분은 모두 htmlspecialchars()사용
strip_tags();
태그를 다 날린다, 특정 태그 허용 / 옵션지정 가능
참고 : https://www.codingfactory.net/10073
basename("data/".$_GET['id']);
파일의 경로에서 파일명만 추출해주는 함수
print.php
<?php
function print_title() {
if(isset($_GET['id'])) {
echo htmlspecialchars($_GET['id']);
} else {
echo "Welcome";
}
}
function print_description() {
if(isset($_GET['id'])) {
// 본문 내용 부분을 htmlspecialchars()로 제한하면 이미지, 줄바꿈 태그 작동x
// strip_tags() : 태그를 다 날린다, 특정 태그 허용 / 옵션지정 가능
// basename() : 파일의 경로에서 파일명만 추출해주는 함수
$basename = basename($_GET['id']);
echo htmlspecialchars(file_get_contents("data/".$basename));
} else {
echo "Hello, PHP";
}
}
function print_list() {
$list = scandir('./data');
$i = 0;
while($i < count($list)) {
$title = htmlspecialchars($list[$i]);
if($list[$i] != ".") {
if($list[$i] != "..") {
echo "<li><a href='index.php?id=$title'>$title</a></li>\n";
}
}
$i++;
}
}
?>
delete.php
<?php
unlink('data/'.basename($_POST['id']));
header('Location: /index.php');
?>
'PHP' 카테고리의 다른 글
| PHP Excel 설정 (0) | 2023.11.16 |
|---|---|
| [정규식] preg_match("/(http:)/i", $test) (0) | 2023.10.18 |
| PHP 파일로 모듈화 (0) | 2023.01.24 |
| PHP CRUD 기초 (0) | 2023.01.24 |
| PHP 기초4 (0) | 2023.01.20 |
댓글