해커 그룹과 문제가 있습니다. 그들은 내 고객의 사이트를 몇 번 해킹했고 내 고객은 더 화가났습니다 :( 내 고객은 데이터베이스 (수백 개의 레코드가 있음)를 잃어 버렸고 모두 입력해야했습니다 :(
이제 몇 가지 소개를 더 따르고 있습니다.
이제 SQL 주입 문제를 해결 중입니다. 관리자 패널 로그인 매개 변수에 mysql_real_escape_string을 추가했습니다. 그렇다면이 mysql_real_escape_string을 어디에서 사용해야합니까? 사이트에 이메일 양식이 거의 없습니다. 거기에 추가 할 필요가 없다고 생각합니다 ...
메인 페이지로 index.php가 있습니다. index.php? somesql =
과 같은 URL을 통한 SQL 주입 공격을 방지하기 위해이 페이지에서 무엇을해야합니까?
저에게 조언하십시오! 너무 감사합니다 !!! :(
예를 들면 :
그런 코드가 있습니다.
public function showDetails($id) {
// SQL Jobs Details
$this->sql_job = "SELECT * FROM jobs WHERE id=".mysql_real_escape_string($id);
$this->rst_job = mysql_query($this->sql_job);
$this->row_all = mysql_fetch_assoc($this->rst_job);
// SQL State
$this->sql_state = "SELECT title FROM state WHERE id=" . $this->row_all[$this->tbl_jobs['f4']];
$this->rst_state = mysql_query($this->sql_state);
$this->row_state = mysql_fetch_assoc($this->rst_state);
........
$ id에 mysql_real_escape_string을 사용하는 것으로 충분합니까? $ this-> row_all [$ this-> tbl_jobs [ 'f4']]가 아닙니다.
해결 방법
mysql_real_escape_string ()
을 사용하도록 선택하면 다음 경우에만 작동합니다.
used inside a string that is delimited by quotes. Never use it on
인용되지 않은 값. 여기에는 숫자 값이 포함됩니다. 대신 사용자 입력이 실제로 숫자인지 확인하십시오.
참조 페이지 https://stackoverflow.com/questions/2312051
'MySql' 카테고리의 다른 글
MySQL mysql 쿼리는 열 값이 동일한 여러 행을 선택합니다. (0) | 2020.12.06 |
---|---|
MySQL 멀티 스레딩 및 데이터베이스 연결 (0) | 2020.12.06 |
MySQL 라운드가 예상보다 더 많이 떠 다니는 이유는 무엇입니까? (0) | 2020.12.06 |
MySQL 사용자가 로그인 할 때 updated_at 열을 업데이트하는 방법은 무엇입니까? (0) | 2020.12.06 |
MySQL에서 모든 이벤트를 삭제하는 방법 (0) | 2020.12.06 |
댓글