2013-02-12 3 views
0

나는 질문이있다. 나는 당신이 POST와 sanitize를해야만 사람들이 당신의 웹 사이트/DB에 불쾌한 일을하는 것을 막을 수 있지만, 나는 혼란 스럽다. 나는 웹 사이트에서 다음과 같은 것을 보았고 나는 그 질문을 할 것이라고 생각했다.POST와 GET을 살균하는 이유

enter image description here

씨 해커는 드롭 테이블이 학생이라는 것을?,이 상황에서 그것은 아마 운동을 많이받지 않을 것 학교 것으로 알고 있지만, 내가 생각 할 방법이 이런 종류의 코드 PHP 파일에서 실행될 때보기에서 숨겨진 것이 었습니다. 그래서 내 테이블의 이름을 불분명하게 만들면 어떻게 공격이 테이블 이름을 삭제했는지 알 수 있습니까?

+0

info_schema! [이] (http://websec.wordpress.com/2007/11/17/mysql-table-and-column-names/)을 참조하십시오 –

+0

https://www.owasp.org – user20232359723568423357842364

답변

4

네, 숨겨진, 그러나이 같은 취약점이있는 경우 SHOW TABLESSHOW COLUMNS ..

+0

아하, 당신을 도망 갈 것입니다 POSTS는 그때 작업 테이블/열을 중지합니까? –

+1

아니요,이 취약점으로 인해 MySQL 쿼리에 대한 입력이 이스케이프 처리되기 때문입니다. POST 데이터를 ** 알기 힘들지 않게해야합니다. 체크하고 확인해야합니다. 탈출은 MySQL에 대한 입력 또는 _string_을 생성하는 작업으로 수행합니다. – Halcyon

+0

제 말은 mysql escapestring을 의미합니다. –

1

엄지 손가락의 규칙은 죄송 것보다 안전한 것이 항상 더 나은 것입니다 포함 원하는 쿼리를 실행할 수 있습니다! 이미 언급했듯이 공격자는 데이터 내용을 출력하거나 그림별로 삭제할 수 있습니다. PHP 코드는 숨겨져 있지만 일부 오류 출력이나 PHP 모듈이 어떤 이유로 든 언로드 된 경우와 같이 소스 코드가 표시 될 수있는 경우가 있습니다.

1

아마도이 질문에 답하지 않겠지 만, 모든 사람들은 테이블 놓기, 데이터베이스 파괴 및 기타 재앙을 피하기 위해 사용자 입력을 "소독"하는 것에 대해서만 말합니다.

내가 듣지 못한 것은 살균이 당신의 질문을 보호한다는 사실입니다. 해커가 아니라 악마가 아니라 가벼운 사람, 즉 이름이 O'Reilly 인 사람이나 따옴표가 들어있는 사용자가 제공 한 다른 데이터를위한 것입니다.

그 인용문은 귀하의 질의를 완전히 중단시킬 수 있습니다. 그리고 멋진 디자인의 webapp을 중단하십시오. 악의적 인 것도 아닙니다.

따라서 BREAKING을 피하려면 쿼리를 살균하십시오. 이렇게하는 동안, 당신은 또한 계열 인 MALICIOUS BREAKING을 방지 할 것입니다.. 쿼리는 따옴표로 구분 된 STRINGS이며 보간 된 따옴표는 간단히 문자열을 끝내지 않고 데이터베이스 호출 오류를 종료합니다.

+0

이스케이프는 defacto modus operandi 여야합니다. 한 언어에서 다른 언어 (예 : SQL과 같은 DSL)로 이동하거나 JSON, XML 및 예 (HTML 포함)와 같은 출력을 생성 할 때마다 반드시 이탈해야합니다. – Halcyon

+0

아, 지금 당신의 요지를 보았습니다. 문제의 원인이 된 아포스트로피로 이름을 생각한 적이 없었습니다. –