2014-01-16 2 views
0

SQL 인젝션 및 XSS로부터 보호하는 방법에 대한 보고서와 필자가 만든 웹 사이트의 보안을 개선 할 수있는 방법에 대한 보고서를 작성해야합니다.xss로부터 보호하기 위해 배열에서 출력 이스케이프

내 웹 사이트에서 jquery의 jTable을 사용하여 MySQL 데이터베이스의 데이터를 표시했습니다. DB를에 새 항목에 대한

입력이는 mysql_real_escape_string를 사용하여 소독됩니다

$fieldName = mysql_real_escape_string($_POST["fieldName"]); 

출력을 사용하여 표시됩니다 (내 보고서에 나는 준비 satements를 사용하는 것이 더 나은 옵션 왜 것을 제안하고 있지만) :

내 웹 사이트를 테스트 할 때 SQL 주입을 어렵게 만들었지 만 HTML과 java를 저장할 수 있다는 것을 깨달았습니다. 스크립트 코드를 db에 저장 한 다음 브라우저에 표시 할 때 실행합니다. 지금은 내가의 수이 나는이 작업이 완료되어 있어야 올바른 방법을 진술 할 보고서 무엇을 생산해야한다는

$fieldName = mysql_real_escape_string(strip_tags($_POST["fieldName"])); 

: 나는이 문제를 해결하는 방법을 몰랐어요으로 난 그냥 사용자 입력에 strip_tags 기능을 추가 개선.

그럼 내 질문 ... 배열에서 출력을 어떻게 이스케이프합니까? http://www.w3schools.com/php/func_string_htmlspecialchars.asp

strip_tags이 태그를 제거합니다, 당신은 출력에 표시 할 수있는 특정 태그를 지정하지 않으면 :

희망이 당신은 일반 텍스트로 출력 HTML에 반드시 htmlspecialchars를 사용할 수 있습니다 의미를

+0

@randomizer 브라우저에 보낸 전자 메일을 표시하는 내 사이트의 다른 부분에 htmlspecialchars를 사용 했으므로 보고서의 어느 시점에서이를 언급 할 것입니다. 그러나 htmlspecialchars가 배열의 데이터 태그를 제거 할 수 있는지 알 수 있습니까? ? – ToniHopkins

+0

아니요, strip_tags를 사용해야하는 태그를 제거하려면 HTML을 그대로 표시하려면 htmlspecialchars ($ text)를 사용할 수 있으며 HTML로 표시되지 않고 텍스트로 표시됩니다. – randomizer

+0

@randomizer 미안 해요 내가 rephase해야 ... 배열로 htmlspecialchars를 사용하여 HTML, 자바 스크립트를 표시 할 수 있습니까? 기본적으로 알고 싶은 것은, 이것과 같은 명령이 존재하는지 (그리고 작동하는지)입니다 : print json_encode (htmlspecialchars ($ jTableResult)); 입력이 아닌 출력을 사용하는 경우 – ToniHopkins

답변

1

한다.

는 mysql_real_escape_string는 http://www.w3schools.com/php/func_mysql_real_escape_string.asp

그러나 보안을 강화하기 Mysqli 또는 PDO와 준비된 문으로 봐 .. SQL 입력을위한 문자를 이스케이프하는 데 사용됩니다. MySQL은 부적절합니다.

+0

w3schools를 피하십시오. http://www.w3fools.com/ – Misiur

+0

그래도 될 수 있지만 제공되는 링크는 곧바로 사용할 수 있습니다. – randomizer

+0

mysql_ * 함수는 php 5.5에서 사용되지 않습니다. 직접 PHP 매뉴얼이나 OWASP 보안 가이드에 링크했다면 더 좋을 것이다. 감사! – Misiur

관련 문제