file permissionsまたはを介してオペレーティング システム固有のコマンドを実行せずに、どうすれば を確認できますpassthru()かexec()?
			
			20068 次
		
5 に答える
            22        
        
		
fileperms()関数を使用する
clearstatcache();
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
    于 2008-08-21T08:10:44.817   に答える
    
    
            12        
        
		
is_readable()、is_executable()などのコマンドを使用できます。
于 2008-08-21T08:09:46.720   に答える
    
    
            6        
        
		
実際のコーダーは、文字列ではなくビット単位の操作を使用します;) これは、パーミッションを処理するより洗練された方法です:
function checkPerms($path)
{
    clearstatcache(null, $path);
    return decoct( fileperms($path) & 0777 );
}
    于 2013-04-18T13:12:17.670   に答える
    
    
            0        
        
		
ファイルのアクセス許可を確認して何をしたいですか?
安全なコードを書くとき、「チェックしてから実行する」というのは、ほとんどの場合間違っています。その理由は、できるかどうかを確認してから実際に実行するまでの間に、システムの状態が変化し、実行すると異なる結果になる可能性があるためです。
たとえば、ファイルを書き込む前にファイルが存在するかどうかを確認する場合、ファイルが正常に書き込まれたかどうかを確認せず (または十分に詳細な方法で確認しないでください)、後で書き込んだファイルの内容に依存します。 、攻撃者によって書き込まれたファイルを実際に読み取っている可能性があります。
したがって、ファイルのアクセス許可をチェックする代わりに、アクセス許可のチェックが成功した場合に実行する予定だったことを実行し、エラーを適切に処理します。
于 2008-08-21T08:09:41.993   に答える