나는 해커 집단과 문제가있다. 그들은 내 고객의 사이트 몇 번 해킹, 내 클라이언트는 더 화가 :(내 클라이언트 (수백 레코드가) 자신의 데이터베이스를 잃고, 지금은 좀 더 소개 다음있어 모든 :(mysql_real_escape_string을 사용하여 SQL 삽입을 방지 할 수있는 곳은 무엇입니까?
를 입력했다 얻는다;
- 고정 파일 권한이
- 변경된 FTP 및 호스트 로그인 정보
- 모든 원격 MySQL은 이제 SQL 인젝션 문제에 대한 작업
에 액세스 허가. 나는 mysql_real_escape_ 추가 관리자 패널 로그인 매개 변수에 문자열. 그렇다면이 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']
나는 MSSQL 사람이므로 잘하면이게 적용됩니다 - 왜 웹 사이트 로그인은 무언가를 삭제할 수있는 권한이 있습니까? 데이터베이스를 잃어 버리는 것에 관해서는, 백업은 어디에 있습니까 ?? –
"SELECT * FROM jobs where id =". mysql_real_escape_string ($ id)은 SQL 삽입에 취약합니다. $ id = "1 or sleep (50)" – rook
+1 루크. mysql_real_escape_string은 마술 총알이 아니며 단지 문자열 이스케이프 함수이며 따옴표 안에 사용될 때만 작동합니다. – Cheekysoft