Closed jichanan closed 1 year ago
title, context, userid = cur.execute("SELECT title, context, userid FROM board where id=%s", [id]).fetchone()
'int' object has no attribute 'fetchone' ์ค๋ฅ ๋ฐ์
cur.execute(f'INSERT INTO hit_count (userid, board_no, hit_time) VALUES ({session_id}, {id}, {hit_time})')
์ด๊ฑฐ ์ง์ง f-string์ผ๋ก ํ๋ฉด ๋ณด๊ธฐ ์ฐธ ์ข์ ๊ฒ ๊ฐ์์ ํด๋ณด๋๊น ์ ์ ์๋ ์ค๋ฅ๋ค์ด..
1๋ฒ์งธ ์ค๋ฅ: (1054, "Unknown column "dkswlcks77" in 'where clause'") โ ํฌ์ํ๊ฒ {session_id}๋ง ๋ฐ์ดํ๋ก ๊ฐ์ธ์ฃผ๋ฉด ์ ์์๋ํจ cur.execute(f'UPDATE hit_count SET hit_time = {current_time} WHERE userid = "{session_id}" AND board_no = {id}') โ์ด๋ฐ์์ผ๋ก <์ฐธ๊ณ ์ฌํญ> print(sessionid) // 'dkswlcks77'_ print(type(session_id)) // str print(id) // '257' print(type(id)) // str hit_count ํ ์ด๋ธ์ userid์ board_no ๋ ๋ค varchar %s ํฌ๋งทํ ์ ์ ์์๋
2๋ฒ์งธ ์ค๋ฅ: cur.execute(f'UPDATE hit_count SET hit_time = {current_time} WHERE userid = {session_id} AND board_no = {id}')
+ f-string์ SQL Injection์ ์ทจ์ฝ(?)
๋๋๊ฐ ์๋ ค์ค๋๋ก ๊ธฐ๋ฅ๋จ์๋ก ์ชผ๊ฐ๋๊น ์ฝ๋๋ฅผ ํด์ํ ํ์์์ด ์ฝ๊ฒ ๋ญ ์ฝ๋์ธ์ง ๋น ๋ฅด๊ฒ ์ ์ ์์ด์ ์ข์ ๊ฒ ๊ฐ์! ํน์ ๋ญ ์๋ชป ์ชผ๊ฐฐ๊ฑฐ๋ ๋ค์ด๋ฐ์ด ๋ณ๋ก๋ผ๊ฑฐ๋ ๋ณด์ํ ์ ์์ผ๋ฉด ์๋ ค์ค!
- ๋ณต์ต (์ฐธ๊ณ ๋ฌธํ:ํผ๊ณตํ) ํจ์๋ฅผ ๋ง๋ค๋ฉด ์ฝ๋์ ์ด๋ฆ์ ๋ถ์ผ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝ๋์ ์ด๋ฆ์ ๋ถ์ด๋ฉด ์ฝ๊ฒ ์ฝ์ ์ ์์ต๋๋ค. ๋ค์ ์ฝ๋๋ฅผ ๋ณด๋ฉด ์ฃผ์์ด ์์ด๋ ์ฝ๊ฒ ์ฝ๋๋ฅผ ์ดํด ํ ์ ์์ต๋๋ค.(๋ฌผ๋ก area์ circumference๋ผ๋ ๋จ์ด์ ์๋ฏธ๋ฅผ ๋ชจ๋ฅด๋ฉด ํ๋ค๊ฒ ์ง๋ง์) ๊ทธ๋ฐ๋ฐ ์ฝ๋๊ฐ ๊ธธ์ด์ ธ์ ์คํ๋ ค ๋ณต์กํด์ก๋ค๊ณ ์๊ฐํ ์๋ ์๋๋ฐ, ํจ์ ๋ถ๋ถ์ ์๋ตํ๊ณ ์ฝ๋ ๋ณธ๋ฌธ ๋ถ๋ถ๋ง ์ดํด๋ณด๋ฉด ์ฃผ์์ด ์ ํ์์ด๋ ์ฝ๋๋ง ์ฝ๊ณ ๋ฌด์์ ํ๋ ์ฝ๋์ธ์ง ์ฝ๊ฒ ์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ํ์ค์ ์ฝ๋๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด ํจ์๋ก ๋ง๋๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ง์ฐฌ์~! ๋๋๊ฐ reviewํด์ค๊ฑฐ๋ฅผ ๊ณ ์น ๋, ์ด๋ ๊ฒ ๋ฐ๋ก PR ๋ ๋ฆด ํ์ ์์ด ์ด์ PR์์ ๊ณ์ ์์ ํด๋๋ผ!
PR ํ๋ฆ์ ์ ๋ฆฌํ์๋ฉด,
Related Issue
9
Motivation ๐ง
Key Changes ๐
To Reviewers ๐
-
Screenshot
-
Reference
-