0

동적 인 응용 프로그램을 만들고 있는데 매개 변수화 된 쿼리가 XSS, 2 차 공격으로부터 안전한지 확실하지 않습니다. 너 나 좀 도와 줄 수있어? 감사!Mysqli - XSS 2 차 공격을 막기에 매개 변수화 된 쿼리가 충분합니까?

 
    $stmt = $mysqli->prepare("INSERT INTO tb (1, 2, 3, 4, 5, 6, 7) VALUES (?, ?, ?, ?, ?, ?, ?)"); 

    $stmt->bind_param('sssssss', $1, $2, $3, $4, $5, $6, $7); 
    $stmt->execute(); 
    $stmt->close(); 

답변

0

아니 :

나는 예제로이 코드를 가지고있다.

매개 변수가있는 쿼리는 SQL 삽입을 방지합니다. 즉, SQL 백엔드에 의한 처리 전에 쿼리 매개 변수가 올바르게 형성되고 올바르게 이스케이프됩니다.

XSS는 HTML 마크 업의 입력을 소거해야하는 다른 종류의 문제입니다. 올바르게 매개 변수화 된 SQL 값에 여전히 마크 업이 포함될 수 있으므로 추가 인코딩이 필요합니다 (예 : htmlspecialchars()).

+0

감사합니다. Alex! htmlspecialchars()로 충분합니까? –

+0

... * 아마 *, [HTML/PHP로 XSS를 방지하는 방법을 살펴보십시오] (http://stackoverflow.com/questions/1996122/how-to-prevent-xss-with-html-php) –

+0

XSS와 2 차 공격은 같은 것입니까? –

0

확실히 아닙니다.

XSS 사용자 sanitisation을 직접 구현하지 마십시오.

특별히 이것을 위해 별도의 라이브러리를 사용하십시오. 모든 경우를 감당할 수 없을 것입니다.

Here은 대처해야 할 몇 가지 모범 사례의 간단한 목록입니다.