3초기억력

MS-SQL UPDATE문을 제대로 쓰자 3탄 본문

쿼리_MSSQL

MS-SQL UPDATE문을 제대로 쓰자 3탄

잠수콩 2008. 11. 18. 13:32

테이블 : 어떤 칼럼에 특정 문자열을 지우고 싶을때.

update 테이블명
set 칼럼명 = replace(칼럼명, '특정문자열', '')
where 칼럼명 like '%특정문자열%'

예전에 SQL인젝션 공격에 의해서,

몇개의 테이블(인젝션 공격을 막기위한 스크립트를 안넣었던 페이지에 걸린 테이블만...ㅡㅡ)에
"<script>어쩌구저쩌구</script> " 가 varchar, text 형식에 모두 들어가버려서 ㅜㅜ 아주 곤란할때 썼던 방법

sql 인젝션에 당하지 말려면 "<", ">" 이건 특히나 request 받을 때, 다른 문자로 치환해서 저장해야한다.
안그럼 저런 공격에 맥을 못춤.

예를들면, 검색페이지등에 post방식이던 get방식이던 변수에 값을 넣어서 결과페이지에 뿌릴텐데.

xxxx.com/a.asp?search_txt=나나나 <-- 요렇게

xxxx.com/a.asp?search_txt=<script>alert('SQL 인젝션 걸릴 위험 크다');</script> <-- 요렇게 해보면

sql injection 에 걸릴 위험이 크다.

물론 쿼리문에서의 처리는 당연하고, 페이지에서도 변수처리 제대로 해야한다.

Comments