모든 저작권은 <생활코딩>의 생산자인 <egoing>님에게 있습니다.
문제시, 비공개로 전환하겠습니다.
<보안>
데이터는 잃는다면 복구할 수 없다.
데이터의 집, 서버
서버에 접속할 때는 경건해야한다. (농담)
php/5.php |
<html> <head> <title></title> </head> <body> <?php echo htmlspecialchars('<script>alert(1);</script>'); ?> </body> </html> |
Index.php |
<?php $conn = mysqli_connect("localhost", "root", 111111); mysqli_select_db($conn, "opentutorials"); $result = mysqli_query($conn, "SELECT * FROM topic"); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="http://localhost/style.css"> </head> <body id="target"> <header> <img src="https://s3.ap-northeast-2.amazonaws.com/opentutorials-user-file/course/94.png" alt="생활코딩"> <h1><a href="http://localhost/index.php">JavaScript</a></h1> </header> <nav> <ol> <?php while( $row = mysqli_fetch_assoc($result)){ echo '<li><a href="http://localhost/index.php?id='.$row['id'].'">'.htmlspecialchars($row['title']).'</a></li>'."\n"; } ?> </ ol> </nav> <div id="control"> <input type="button" value="white" onclick="document.getElementById('target').className='white'"/> <input type="button" value="black" onclick="document.getElementById('target').className='black'" /> <a href="http://localhost/write.php">쓰기</a> </div> <article> <?php if(empty($_GET['id']) === false ) { $sql = "SELECT topic.id,title,name,description FROM topic LEFT JOIN user ON topic.author = user.id WHERE topic.id=".$_GET['id']; $result = mysqli_query($conn, $sql); $row = mysqli_fetch_assoc($result); echo '<h2>'.htmlspecialchars($row['title']).'</h2>'; echo '<p>'.htmlspecialchars($row['name']).'</p>'; echo strip_tags($row['description'], '<a><h1><h2><h3><h4><h5><ul><ol><li>'); } ?> </article> </body> </html> |
php.net을 활용! |
SELECT * FROM user WHERE 1=1; => 언제나 참이다. |
SQL에서 '를 따옴표로 인식하려면 '앞에 \를 넣는다. |
mysqli_real_escape_string($conn,"1111"); => 1111 |
객체지향의 코딩을 하자! |
댓글