header-img
Info :
๋ณ€์ˆ˜์„ ์–ธ 2
Javascript :: ๋™์ ์œผ๋กœ ๋ณ€์ˆ˜ ์ƒ์„ฑ
2024.11.26
// ๊ฐ์ฒด ์ƒ์„ฑlet dynamicVars = {};// ๋™์ ์œผ๋กœ ๋ณ€์ˆ˜๋ช… ์ƒ์„ฑfor (let i = 0; i  ์ด๋ ‡๊ฒŒ ๋ฌด์ง€์„ฑ ๋ณ€์ˆ˜๋„ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๊ณ ,${i} ๋Œ€์‹  ๊ธฐ์กด์— ์„ ์–ธํ•ด๋‘์—ˆ๋˜ ๋ณ€์ˆ˜๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๋‚˜์˜ ๊ฒฝ์šฐ์—๋Š” ๋ฐฐ์—ด ์•ˆ์˜ ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฒ€์ฆํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•ด๋‘ฌ์•ผ ํ•ด์„œ ๋™์  ๋ณ€์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋˜์—ˆ์Œ. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๊ทธ๋ฆฌ๋“œ์•ˆ์— ๋ฐฐ์—ด[] ์•ˆ์— ์žˆ๋Š” ๊ฐ’๊ณผ ์ด๋ฆ„์ด ๊ฐ™์€ ์ปฌ๋Ÿผ์— ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๋Š” ์ผ์ด๋‹ค.๊ทธ๋•Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ€ํ˜•ํ•ด์„œ ์‚ฌ์šฉํ• ์ˆ˜๋„ ์žˆ๋‹ค. const checkColumns = ['Nation', 'Dept', 'Name', 'Age'] _.forEach(dataList, (row, index) => { let dynamicVars = {}; // ๋™์ ์œผ๋กœ ๋ณ€์ˆ˜๋ช… ์ƒ์„ฑ for (let i ..
Mybatis :: ๋‹ฌ๋Ÿฌ($)์™€ ์ƒต(#)์˜ ์ฐจ์ด
2024.01.16
ํŒŒ๋ผ๋ฏธํ„ฐ ๋งคํ•‘์„ ํ•˜๋Š” ๋ฐ์— ์‚ฌ์šฉํ•˜๋Š” $์™€ # ๋‘๊ฐ€์ง€์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. # PreparedStatement๋ฅผ ์˜๋ฏธ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ String ํ˜•ํƒœ๋กœ ๋“ค์–ด์™€ ์ž๋™์œผ๋กœ(' ') ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•ํƒœ๊ฐ€ ๋จ #{user_id} ์˜ ๊ฐ’์ด 'neeon'์ด๋ผ๋ฉด user_id = 'neeon' ํ˜•ํƒœ๊ฐ€ ๋จ ์ฟผ๋ฆฌ ์ฃผ์ž…์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ์–ด ๋ณด์•ˆ ์ธก๋ฉด์—์„œ ์œ ๋ฆฌ ์ •์ ์ธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์บ์‹ฑ์„ ํ•ด์„œ ์žฌํ™œ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ํšจ์œจ์ ์ž„ $ Statement๋ฅผ ์˜๋ฏธ ํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ์ž๋ฃŒํ˜•์— ๋งž์ถ”์–ด ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ž๋ฃŒํ˜•์ด ๋ณ€๊ฒฝ๋จ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋ฐ”๋กœ ์ถœ๋ ฅ๋จ. ์ฟผ๋ฆฌ ์ฃผ์ž…์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์—†์–ด ๋ณด์•ˆ ์ธก๋ฉด์—์„œ ๋ถˆ๋ฆฌํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ์ „๋‹ฌํ•  ๋•Œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ (SQL Injection) ํ…Œ์ด๋ธ”์ด๋‚˜ ์ปฌ๋Ÿผ๋ช…์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•จ ์ฐจ์ด์  ..