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를 사용할 수 있습니다 의미를
@randomizer 브라우저에 보낸 전자 메일을 표시하는 내 사이트의 다른 부분에 htmlspecialchars를 사용 했으므로 보고서의 어느 시점에서이를 언급 할 것입니다. 그러나 htmlspecialchars가 배열의 데이터 태그를 제거 할 수 있는지 알 수 있습니까? ? – ToniHopkins
아니요, strip_tags를 사용해야하는 태그를 제거하려면 HTML을 그대로 표시하려면 htmlspecialchars ($ text)를 사용할 수 있으며 HTML로 표시되지 않고 텍스트로 표시됩니다. – randomizer
@randomizer 미안 해요 내가 rephase해야 ... 배열로 htmlspecialchars를 사용하여 HTML, 자바 스크립트를 표시 할 수 있습니까? 기본적으로 알고 싶은 것은, 이것과 같은 명령이 존재하는지 (그리고 작동하는지)입니다 : print json_encode (htmlspecialchars ($ jTableResult)); 입력이 아닌 출력을 사용하는 경우 – ToniHopkins