ํด๋ผ์ด์ธํธ ์๊ตฌ์ฌํญ
ํด๋ผ์ด์ธํธ์ ์๊ตฌ์ฌํญ ์ค์ ์๋น์ค ํ์ด์ง์ ์ ๊ทผ๋๋ ์ฌ์ฉ์๋ค์ ์์ดํผ, ์ด๋ค ๋ธ๋ผ์ฐ์ , ๋ชจ๋ฐ์ผ์ธ์ง PC์ธ์ง, ์ด๋ค ํ๋ผ๋ฏธํฐ๋ฅผ ๋์ง๋์ง๋ฅผ DB๋ก ์ ์ฅํด์ ๋ณด๊ณ ์ถ์ดํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด ๋ ํ๋ผ๋ฏธํฐ๋ฅผ querystring์ผ๋ก ๊ตฌ์ฑํ๋ฉด URL๋ก ๊ตฌ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ ์ธ์ฝ๋ฉ์ ํด์ฃผ์ด์ผ ํ๋ผ๋ฏธํฐ์ ๋ฐ๋ผ ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒ์ ๋ฏธ๋ฆฌ ๋ฐ์ํ์ง ์๊ฒ ์๋ฐฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
ํ์ง๋ง ์ด๋ ๊ฒ ์ธ์ฝ๋ฉ ๋ ์ํ๋ก DB์ ์ ์ฅ์ด๋๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๊ณ ์ถ๋ ํ๋ผ๋ฏธํฐ๋ ์ด๋ค ๊ฐ์ธ์ง ์ ์ ์๊ฒ ๋ฉ๋๋ค.
์ด ๋ ์ฟผ๋ฆฌ๋ฅผ ์กฐํํด์ฌ ๋ URL Decoder ํจ์๋ฅผ ๋ง๋ค์ด์ ํด๋น ํจ์๋ก ๋์ฝ๋ฉ์ ํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฌํด์ฃผ๋ฉด ๋ฉ๋๋ค.
MySQL / MariaDB URL Decoder ํจ์
DELIMITER |
CREATE FUNCTION urldecode (s VARCHAR(4096)) RETURNS VARCHAR(4096)
DETERMINISTIC
CONTAINS SQL
BEGIN
DECLARE c VARCHAR(4096) DEFAULT '';
DECLARE pointer INT DEFAULT 1;
DECLARE s2 VARCHAR(4096) DEFAULT '';
DECLARE h3 VARCHAR(4096) DEFAULT '';
IF ISNULL(s) THEN
RETURN NULL;
ELSE
SET s2 = '';
WHILE pointer <= LENGTH(s) DO
SET c = SUBSTR(s,pointer,1);
IF c = '+' THEN
SET h3 = '20';
ELSEIF c = '%' AND pointer + 2 <= LENGTH(s) THEN
SET h3 = UPPER(SUBSTR(s,pointer+1,2));
SET pointer = pointer + 2;
ELSE
SET h3 = HEX(c);
END IF;
SET s2 = CONCAT(s2,h3);
SET pointer = pointer + 1;
END while;
END IF;
RETURN UNHEX(s2);
END;
|
DELIMITER ;
- ํจ์ ์์ฑ ์ฟผ๋ฆฌ๋ฌธ์ ์ํํ๊ธฐ ์ํด์๋ ํ์ฌ ์ ์ํ ๊ณ์ ์ ํจ์ ์์ฑ ๊ถํ์ด ์์ด์ผํ๋ค.
- ๋๋ ํจ์๋ฅผ ์์ฑํ ์ ์๋ ์ค์ ์ด DB์๋ฒ์ ์ ํ ๋์ด ์์ด์ผ ํ๋ค. ๋ํ์ ์ผ๋ก log_bin_trust_function_creators ๊ฐ์ด ์๋ค.
์ฌ์ฉ๋ฐฉ๋ฒ
SELECT urldecode('์ธ์ฝ๋ฉ๋๋ฌธ์');
์๋ฌ
์ฌ์ฉํ๋ค ๋ณด๋๊น ํน์ ๋จ์ด๋ decode ์ hex ์๋ฌ๊ฐ ๋ฐ์ํ๋ ๊ฒ ๊ฐ์๋ฐ ์์ง ์์ธ ํ์ ๋ฐ ํด๊ฒฐ์ ํ์ง ๋ชปํ์์.
์ฐธ๊ณ