2012-02-05 5 views
1

글쎄, PHP와 MySQL에 관한 몇 가지 팁을 알고 싶다.MySQL에서 데이터를 삽입하고 가져 오는 안전한 방법

그때 나는 다음과 같은 유효성 검사를 사용하는 사용자의 데이터를 얻을 :이 사용자로부터 데이터를 얻을 수있는 안전한 방법

mysql_real_escape_string() 
or 
htmlentities() 
or 
trim() 

인가를?

그리고 MySQL 데이터베이스에서 데이터를 검색하는 가장 좋은 방법은 무엇입니까? nl2br()을 사용했지만, I'm here을 제출하면 I\'m here이 표시됩니다. I'm here이 표시되어야합니다. 올바른 방법이 무엇인지 모르겠습니다.

+0

이러한 기능 중 어느 것도 유효성 검사를 수행하지 않습니다. 그리고 이러한 함수의 출력을 사용하는 것이 안전한지 여부는 사용하는 방법에 따라 다릅니다. 그렇다면이 기능들을 어떻게 사용합니까? – Gumbo

+2

PDO로 전환하고 더 나은 인간성을 위해 마법 인용 부호를 끄십시오. – PeeHaa

+0

@PeeHaa이 아이디어에 감사드립니다. 하지만 그것은 PHP 5.0에서 이미 해제 된 것 같습니다. 그렇지? – user1161867

답변

1

데이터를 데이터베이스에 삽입 할 때 mysql_real_escape_string; 아니요 htmlentities. 또는 더 나은, MySQLi - 또는 더 나은, PDO.

안전하지 않을 수도있는 데이터베이스에서 데이터를 출력 할 때 htmlentities을 사용하게 될 것입니다.

슬래시를 중지하려면 turn magic quotes off.

+0

감사합니다. @minitech. 그래서 htmlentities는 안전합니까? 다른 방법은 없나요? – user1161867

+0

@ user1161867 : 예, HTML 출력에 안전합니다. 그냥 사용하는 것을 잊지 마십시오. 오, 그리고 ['htmlspecialchars'] (http://php.net/htmlspecialchars)도 있습니다. – Ryan

+0

두 기능을 모두 사용할 수 있습니까? – user1161867

관련 문제