2011-10-08 2 views
1

현재 내 사이트에 방명록이 있습니다. 그것은 매우 기본입니다. 최근 나는 현재 데이터베이스에 추가 된 입력을 살균하는 방법이 충분히 안전한지 의심하고 있습니다.해커가 치명적인 데이터를 데이터베이스에 삽입하는 것을 막을 수있는 더 좋은 방법이 필요합니다.

$name=$_POST['name']; 
$c_name=mysql_real_escape_string(htmlspecialchars($name)); 
$detail=mysql_real_escape_string(htmlspecialchars($_POST['detail'])); 

그럼 분명히 내가 서버에 데이터를 전송하고 필요한 테이블에 배치 할 다음은 데이터를 수집하고 소독하라고 코드의 현재 조각입니다. 이 방법이 효율적입니까, 아니면 제가 알아야 할 보안 구멍이 있습니까? 감사!

+0

모두'mysql_real_escape_string()'은 이스케이프 따옴표입니다. CSRF 및 XSS를 포함하여 사이트를 "손상"시키는 다른 많은 방법이 있습니다. 당신은 허용 된 것만 남겨 두는 것이 가장 좋습니다. –

+0

충분합니다. 당신이 얻은 비난의 대답은 그 접근법이 - 응급주의 자임을 지적한다. 그러나 여러분의 페이지에서 방명록 항목을 다시 인쇄하고 싶을 뿐이므로 실제로 html 콘텐츠를 사전에 이스케이프 처리하는 것이 실제적입니다. – mario

+0

@mario - 저 한테 그 의견을 말하고 있습니까? 나는 네가 뭘 의미하는지 모르겠다. –

답변

4

데이터베이스에 보내는 데이터에 htmlspecialchars()을 사용하지 마십시오. 만 출력해야합니다. 그 외에도 "Making Wrong Code Look Wrong"을 읽으면 변수를 직선으로 유지할 수 있습니다. 오류가 화면에 두드러지게 그대로 발명 규칙에 의해 강력한 코드를 만드는

....

+0

링크 된 기사는 전송되거나 제시되는 데이터를 인코딩하는 좋은 방법을 많이 제공합니다. 매우 흥미로운. – b28c92e5ff1

관련 문제