์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- https://youtube.com/playlist?list=PLuHgQVnccGMA5836CvWfieEQy0T0ov6Jh&si=FTaYv8m21EhO-A2K
- promise
- js
- mysql
- ajax
- sql
- ๋น๋๊ธฐ
- eport
- slow and steady
- ๋๊ธฐ
- https://m.blog.naver.com/tt2t2am1118/221010125300
- setTimeout()
- JS #ํ๋ก์ ํธ
- database
- ์ฐธ๊ณ ๋ธ๋ก๊ทธ
- Porject
- addEventListener
- callback
- async
- db
- execCommand
- webpack
- json
- prj
- ํผํ
- object
- await
- Project
- Import
- ๊ฒ์
- Today
- Total
C-log
๐ฌMySQL&๐PHP : ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ์ธํ๋ฆฌ ๋ณด์ ๋ณธ๋ฌธ
๐ฌMySQL&๐PHP : ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ์ธํ๋ฆฌ ๋ณด์
4:Bee 2023. 10. 9. 22:04์ด๋ฒ์๋ ์ฐ๋ฆฌ๊ฐ ๋ง๋ค์ด ๋์ ์น์ฌ์ดํธ์ ๋ณด์์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ง๋ค์ด ๋ณผ ๊ฒ์ด๋ค. ์ฆ, ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ๋ ์ ๋ณด๋ฅผ ์ฒ ์ ํ ๋ฌด์ํ๋ ๊ฒ์ด๋ค. ์ฆ, ์ฐ๋ฆฌ๊ฐ ๋ง๋ค์ด ๋์ ์ฌ์ดํธ์ URL์์ ๋งค๊ฐ๋ณ์๋ฅผ ์กฐ์ํด์ ๋ฐ์ดํฐ ์ ๋ณด๋ฅผ ๋ง์๋๋ก ์กฐ์ํ ์ ์๋ค. ์ด๊ฒ์ SQL injection์ด๋ผ๊ณ ํ๋ค. ๋ฐ๋ผ์ ์ด๊ฒ์ ์ฐจ๋จํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ๋ณผ ๊ฒ์ด๋ค.
mysqli_real_escape_string()
index.php
if (isset($_GET['id'])) {
$filtered_id = mysqli_real_escape_string($conn, $_GET['id']);
$sql = "SELECT * FROM topic WHERE id={$filtered_id}";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result);
$article['title'] = $row['title'];
$article['description'] = $row['description'];
}
process_create.php
$filtered = array(
'title' => mysqli_real_escape_string($conn, $_POST['title']),
'description' => mysqli_real_escape_string($conn, $_POST['description'])
);
$sql = "
INSERT INTO topic(title, description, created)
VALUES(
'{$filtered['title']}',
'{$filtered['description']}',
NOW()
)
";
๊ฐ์์์ SQL injection์ ์๋ฆฌ๋ฅผ ์ค๋ช
ํ์ง๋ง ์ฌ๊ธฐ์ ๋ฐ๋ก ์ธ๊ธํ์ง๋ ์๊ฒ ๋ค. ํ์ํ๋ค๋ฉด ์๋ ํ๊ทธ๋ฅผ ํตํด์ ๊ฐ์๋ฅผ ์ดํด๋ณด์. (์ฐจํ์ ๋ฐ๋ก ์ ๋ฆฌํ ์์ ์ด๋ค.)
htmlspecialchars()
htmlsepcialchars()ํจ์๋ php์์ HTML ํน์ ๋ฌธ์๋ฅผ ์ด์ค์ผ์ดํํ์ฌ ์น ํ์ด์ง์์ ์์ ํ๊ฒ ์ถ๋ ฅํ ์ ์๋๋ก ๋์์ค๋ค. ์ฆ, ์ฐ๋ฆฌ๊ฐ create๋ฅผ ํ ๋ ์์ฑํ๋ input๋์ ํด๋น HTML ํน์๋ฌธ์๋ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์์ฑํ ๋ ์ค๋ก์ง ๋ฌธ์๋ก๋ง ์ถ๋ ฅํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฒ์ด๋ค. ๋ค์ ๋งํด์ ์ฌ์ฉ์๊ฐ ์ง์ ์ ์ผ๋ก ์น ๋ธ๋ผ์ฐ์ ์ HTML์ฝ๋๋ก ์ํฅ์ ์ฃผ์ง ์๊ฒ ํ๋ ๊ฒ์ด๋ค.
while ($row = mysqli_fetch_array($result)) {
$escaped_title = htmlspecialchars($row['title']);
$list = $list . "<li><a href=\"index.php?id={$row['id']}\">{$escaped_title}</a></li>";
}
$article = array(
'title' => 'Welcome',
'description' => 'Hello, web'
);
if (isset($_GET['id'])) {
$filtered_id = mysqli_real_escape_string($conn, $_GET['id']);
$sql = "SELECT * FROM topic WHERE id={$filtered_id}";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result);
$article['title'] = htmlspecialchars($row['title']);
$article['description'] = htmlspecialchars($row['description']);
}
์์ ์ฝ๋๋ htmlspecialchars๋ฅผ ์ฌ์ฉํ ๋ถ๋ถ์ ์ฝ๋์ด๋ค.
'Server > ๐ฌMySQL&๐PHP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฌMySQL&๐PHP : ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ์๋ก์ด ๊ตฌ์ฑ๊ณผ ์์ฑ (1) | 2023.10.14 |
---|---|
๐ฌMySQL&๐PHP : ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ์ํต ์ฐ๊ธฐ์ ์ญ์ (1) | 2023.10.12 |
๐ฌMySQL&๐PHP : ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ๋ง์ ์ฝ๊ธฐ (0) | 2023.10.06 |
๐ฌMySQL&๐PHP : ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ์์ฑ (0) | 2023.10.06 |
๐ฌMySQL&๐PHP : ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ์ฒซ ๋ง๋จ (0) | 2023.10.05 |