2012-05-21 2 views
6

가능한 중복 :
What's the best method for sanitizing user input with PHP?어쨌든 php를 통해 HTML 코드를 데이터베이스에 저장할 수 있습니까?

내가 사용하는 웹 페이지의 작은 부분을 편집 할 수 TinyMCE에을 사용하고 있습니다.

이 필드는 데이터베이스에 저장됩니다.

들어오는 HTML 코드를 지우는 데 사용할 수있는 정규식이 있습니까? XSS/NULL/DROP TABLES 같은 종류의 공격이 있습니까?

나는 한 줄 입력 텍스트/숫자 등으로이 작업을 수행했으나 HTML 문자열을받을 때이 작업을 수행하는 방법을 모르겠습니다.

답변

10

나는 HTMLPurifier을 가지고 노는 것을 권 해드립니다.

+0

감사합니다. @ raina77ow 살펴 보겠습니다. – GT22

5

당신은 PHP 함수를 사용할 수 있습니다 : striptagshtmlspecialchars을 :

http://php.net/manual/en/function.strip-tags.php

+0

. 그는 HTML을 허용하지만 XSS 위협을 제거하려고합니다. – MrCode

+0

@MrCode가 정확합니다. 태그를 없애고 위험 태그 나 자바 스크립트를 제거하고 싶지 않습니다. – GT22

2

이 사용할 수 있습니다 - 나는 그것을 사용하고 있는데 그것을 잘 작동하고

function safe_sql($obj) 
{ 
    $obj = htmlspecialchars($obj); 
    $obj = str_replace('"',""",$obj); 
    $obj = str_replace("'","'",$obj); 
    $obj = str_replace("`","`",$obj); 
    $obj = mysql_real_escape_string($obj); 
    return $obj; 
} 

. 그리고 당신은 또한 (데이터베이스에서 데이터를 가져 후) 정상 만들기 위해이 기능을 사용할 수 있습니다 -이 TinyMCE에 의해 생성 된 HTML을 쓸어 버릴 것이다

function to_Normal($data) 
{ 
    $data = htmlspecialchars_decode($data); 

    $data = str_replace(""",'"',$data); 
    $data = str_replace("'","'",$data); 
    $data = str_replace("`","`",$data); 
    $data = nl2br($data); 
    return $data; 
} 
관련 문제