2016-08-27 10 views
1

내 PHP 파일 폴더가 아닌 다른 폴더에있는 파일의 내용을 바꾸려고하는데 "스트림을 열지 못했습니다. 권한이 거부되었습니다"라는 메시지가 나타납니다.PHP없이 사용자가 거부하지 않고 put_file_contents에 오류가 있습니까?

put_file_contents 기능을 사용하여 파일 내용을 변경하십시오. 이 문제에 대한 해결책을 찾기 위해 온라인에서 검색 한 결과, 파일 디렉토리가 소유자/사용자 만 쓸 수 있다는 것을 알았습니다. 나는 filezilla (ftp)에서 디렉토리 속성을 검사했는데 디렉토리가 그룹이나 공개로 쓸 수 없다는 것을 알았습니다.

filezilla에서 디렉토리를 public으로 쓰려고했는데, php 파일이 폴더의 파일에 쓸 수있었습니다.

따라서 필자는 디렉터리가 아닌 파일에만 사용 권한을 쉽게 설정할 수 있다고 생각하며 공용으로 쓰기 권한으로 사용 권한을 설정하여 콘텐츠를 쉽게 바꿀 수 있다고 생각합니다. 소유자/그룹/공개 옵션의 의미를 이해할 수는 없지만? 왜냐하면 이것은 유료 도메인 호스트에서 호스팅되는 웹 사이트의 웹 서버가되어야하기 때문에 공개 쓰기 옵션이 안전한지 또는 왜 단일 웹 사이트를 호스팅하는 웹 서버에 대한 사용자 그룹이 있는지 확실하지 않습니다.

웹 서버의 내용을 PHP 파일 만 바꿀 수있는 이유는 무엇입니까? 웹 서버에 공용 옵션이 제공되는 이유는 무엇입니까? 업로드를위한 것이라면 업로드 페이지가 서버에 있다는 것을 의미합니다! ftp 또는 cpanel에서 터미널에 액세스 할 수 없기 때문에 chmod 등을 실행할 수 없습니다.

공용 쓰기 권한이있는 파일에 보안 위험과 관련된 자세한 정보를 제공 할 수 있습니까?

+0

사이트가 공유 호스팅에있는 경우 공용 액세스로 심각한 보안 문제가 발생할 수 있습니다. – Ahmad

+0

당신이 그것을 할 수없는 이유가 있습니다. 당신은 PHP에서 그것을 해결할 수 없다, 당신은 권한 문제를 해결해야합니다. –

+0

거기에 파일을 삭제하고 대신 PHP 파일에 사용 권한을 다시 쓸 수있는 방법은 무엇입니까? – mk117

답변

0

서버는 여전히 컴퓨터와 마찬가지입니다. 즉, 여러 사용자를 만들 수 있으며 많은 일이 발생할 수 있습니다.

서버가 반드시 웹 서버에만 머 무르지는 않습니다. 분명히 FTP 서버이기도하고 ssh를 사용하여 액세스 할 수도 있습니다. 앞으로는 다른 용도로 사용할 수도 있습니다.

웹 서버처럼 사용하더라도 모든 사용자에게 쓰기 권한이있는 폴더의 사용 권한을 설정하는 것은 코드에서 발생할 수있는 보안 위험 때문에 위험합니다. 그것은 안전 장치의 역할을 할 수 있습니다. 미래에 위험한 것을 써도 손상이 있습니다.

일부 시스템에서는 http 요청 (일반적으로 Apache) 서비스를 담당하는 소프트웨어가 특정 사용자 httpd로 실행되는 이유입니다.

사용자 그룹은 정의 된 사용자 그룹입니다. 당신은 온라인으로 쉽게 읽을 수 있습니다.

+0

안녕하세요 빅! [이 답변] (http://stackoverflow.com/questions/2900690/how-do-i-give-php-write-access-to-a-directory)가 파일 사용 권한 문제를 해결합니까? 또한, (응답에서) 스크립트가 실행 된 후 파일을 대체하면 파일 사용 권한이 PHP 스크립트에 여전히 부여됩니까? – mk117