2011-06-15 2 views
3

SQLite 3 class과 함께 PHP 5를 사용 중이고 PHP built-in data filtering 플래그를 FILTER_SANITIZE_STRING과 함께 사용하면 SQL 주입 및 XSS 공격을 막을 수 있을지 궁금합니다.SQL 주입 및 XSS 공격을 피하기 위해 FILTER_SANITIZE_STRING만큼 충분합니까?

나는 모든 것을 필터링하기 위해 거친 PHP 클래스를 가져올 수 있지만 가능한 한 깨끗하고 짧은 코드를 유지하려고합니다.

알려 주시기 바랍니다.

답변

2

SQLite3 클래스를 사용하면 prepare statements 값을 바인딩 할 수 있습니다. 그것은 데이터베이스 쿼리를위한 올바른 도구가 될 것입니다.

XSS의 경우 SQLite 사용과는 전혀 관련이 없습니다.

0

나는 문자열 데이터 입력을 보호하기에 충분하다고 생각하지만 선택할 수있는 다른 많은 옵션이 있습니다. 예 : 다른 라이브러리는 응용 프로그램 프로세스 시간을 늘리지 만 다른 유형의 데이터를 처리/구문 분석하는 데 도움이됩니다.

0

이 질문을하기에 충분할 정도로 보안 문제에 대한 자신의 의견을 신뢰할 수 없다면 어떻게하면 좋은 대답을하기 위해 여기 누군가를 신뢰할 수 있습니까?

원하지 않는 문자를 제거하는 길을 조만간 지나면 사용자가 입력하려는 문자를 제거하게됩니다. 데이터가 사용되는 특정 컨텍스트에 대해 인코딩하는 것이 좋습니다.

체크 아웃 OWASP ESAPI에는 많은 인코딩 기능이 포함되어 있습니다. 커다란 라이브러리를 끌어 들이고 싶지 않다면 함수가하는 일을 체크하고 관련 부분을 코드베이스에 복사하십시오.

1

XSS와 SQLI 모두에 대해 동일한 위생 기능을 사용하는 것이 현명한 방법입니다. XSS의 경우 HTML로 출력하기 전에 htmlentities를 사용하여 사용자 입력을 필터링 할 수 있습니다. SQLite에 대한 SQLI의 경우 prepared statement를 사용하거나 escapeString을 사용하여 SQL 쿼리를 생성하기 전에 사용자 입력을 필터링 할 수 있습니다.

0

단순한 양식을 만들고 무겁거나 가벼운 프레임 워크를 도입하고 싶지 않다면 PHP 필터 +로 이동하여 데이터베이스에 PDO를 사용하십시오. 이것은 사이트 요청 위조 (cross site request forieies) 이외의 모든 것에서 당신을 보호해야합니다.

관련 문제