사용자가 파일을 업로드 할 수있는 양식이 있는데이 파일의 이름을 [id]_[lastname]_[firstname].pdf
줄에 지정하고 싶습니다. 이름은 사용자에 의해 입력되며, 나는 그 안에 슬래시가있는 무언가를 입력하는 것을 두려워합니다. 첫 번째 이름이 john/hahaimajerk
이면 $path = $dir.$filename
과 같은 문자가 $path = 'uploads/2_smith_john/hahaimajerk.pdf'
이 될 수 있습니다.파일 이름에 PHP가 이스케이프하는 사용자 입력
나는 사용자가 이름을 다른 것으로 제한하도록 강요하고 싶지 않습니다. 나는 원래 이름을 말할 수있는 한 파일 이름에서 약간의 이름을 변경해도 괜찮습니다. 탈출을 위해 어떤 인물이 필요합니까? 아니면 이것을 할 수있는 다른 방법이 있습니까? 또는 ... 그냥 mysql_real_escape_string
을 사용합니까?
는 escapeshellarg 당신을 위해 무엇을 찾고있는,하지만 난 강력하게 사용자 친화적 인 파일 이름에 잠재적으로 안전한 파일 이름으로 알려져 할당하고 데이터베이스를 통해 매핑 고려할 것 . –
악화 : "/../../../etc/passwd"의 첫 번째 이름을 상상하십시오. – Greg
일반적으로 "." 및 ".."도 고려하는 것이 중요합니다. – asmecher