커뮤니티

고용노동부, 산업인력공단과 함께하는 강원도 유일한 기업중심 IT전문교육기관 ICT융합캠퍼스만의 특별한교육입니다.
공인 IT숙련기술인의 다양한 접근방법으로 전문가다운 실무교육을 받을 수 있습니다.

Category

교육강좌

WEB WEB2 - PHP - PHP의 보안

페이지 정보

작성자 관리자 댓글 0건 조회 3,389회 작성일 20-06-08 10:57

본문

PHP의 보안

수업소개

웹애플리케이션에게 일어날 수 있는 나쁜 일들을 알아보고, 이런 문제를 해결하는 사례를 알아봅니다. 

 

Cross site scripting (XSS)

 

XSS.php

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>XSS</title>
</head>
<body>
<h1>Cross site scripting</h1>
<?php
echo htmlspecialchars('<script>alert("babo");</script>');
?>
</body>
</html>

 

변경사항

lib/print.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
function print_title(){
if(isset($_GET['id'])){
echo htmlspecialchars($_GET['id']);
} else {
echo "Welcome";
}
}
function print_description(){
if(isset($_GET['id'])){
echo htmlspecialchars(file_get_contents("data/".$_GET['id']));
} 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 = $i + 1;
}
}
?>

 

 

파일 경로 보호

 

변경사항

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
function print_title(){
if(isset($_GET['id'])){
echo htmlspecialchars($_GET['id']);
} else {
echo "Welcome";
}
}
function print_description(){
if(isset($_GET['id'])){
$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 = $i + 1;
}
}
?>

 

  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

답변목록

등록된 답변이 없습니다.