mysql 중$(param 곶 과\#(param 곶 의 사용 차이

1442 단어 mysql${param}#{param}
${param}전달 하 는 매개 변 수 는 sql 문장의 일부분 으로 여 겨 집 니 다.예 를 들 어 전달 표 이름,필드 이름 등 입 니 다.
예:(입력 값 은 id)
order by ${param} 
sql 로 해 석 된 것 은:
order by id
\#{parm}들 어 오 는 데 이 터 는 문자열 로 사용 되 며,자동 으로 들 어 오 는 데이터 에 더 블 따옴표 를 추가 합 니 다.
예:(입력 값 은 id)
select * from table where name = #{param}
sql 로 해 석 된 것 은:
select * from table where name = "id"
안전 을 위해\#를 사용 할 수 있 는 곳 은\#방식 으로 인삼 을 전달 하면 sql 주입 공격 을 효과적으로 방지 할 수 있 습 니 다.
sql 주입 안내
바로 바 이 두 의 예 에 올 라 가 보 니 분명 해 졌 다.
한 사이트 의 로그 인 인증 SQL 조회 코드 는 다음 과 같 습 니 다.

strSQL = "SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ passWord +"');"
악의 적 으로 기입 하 다userName = "1' OR '1'='1"; passWord = "1' OR '1'='1";원본 SQL 문자열 을 작성 합 니 다.strSQL = "SELECT * FROM users WHERE (name = '1' OR '1'='1') and (pw = '1' OR '1'='1'); "
즉 실제로 실행 되 는 SQL 명령 이 아래 와 같이 되 는 것 이다strSQL = "SELECT * FROM users;"
이렇게 백 스테이지 계 정 을 검증 할 때 교묘 하 게 검 사 를 돌아 계 정 비밀번호 가 없 으 면 사이트 에 로그 인 할 수 있다.그래서 SQL 주입 공격 은 해커 의 빈 칸 채 우기 게임 이 라 고 불 린 다.
my sql 에서$(param 곶 과\#(param 곶 의 사용 차이 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 my sql 에서$(param 곶 과\#(param 곶 의 차이 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기