黄舟2017-04-17 16:25:38
可注入的sql:
$id=$_REQUEST['id'];
$name=$_REQUEST['name'];
id=$id인 회원에서 *를 선택하세요.
id='".$id."'"인 회원에서 *를 선택하세요;
다음인 회원에서 *를 선택하세요. name='".$name."'";
불可注入:
id='".intval($id)."'";
name이 있는 멤버에서 *를 선택하세요. =".sql_escape($name);
PHP中文网2017-04-17 16:25:38
사용자 입력을 필터링하고, 유형 및 크기를 제한하고, SQL 문을 매개변수화합니다. 또한 웹 서비스의 매개변수 취약점도 고려해야 합니다.
PHP中文网2017-04-17 16:25:38
JavaEE의 ReadyStatement 인터페이스를 사용하면 SQL 주입을 쉽게 방지할 수 있으며, 다양한 DataBase 제조업체의 드라이버에서 이를 잘 구현했습니다. Druid 연결 풀은 SQL을 필터링하여 주입을 방지하는 데에도 도움이 됩니다. Jenkins는 findBugs와 같은 일부 플러그인과 협력하여 가능한 SQL 주입 동작을 찾을 수 있습니다.
PHPz2017-04-17 16:25:38
1/프런트엔드 입력은 jsoup를 사용하여 필터링됩니다. jsoup은 다양한 필터링 규칙을 사용자 정의할 수도 있습니다.
2/ibatis와 같은 ORM 프레임워크를 사용하여 SQL 실행 매개변수를 바인딩합니다.