In der PHP -Entwicklung wird häufig festgestellt, dass es notwendig ist, festzustellen, ob die Datei spezifische Berechtigungen hat, insbesondere die Ausführbarkeit und Lesbarkeit der Skriptdatei. PHP bietet zwei Funktionen: is_execable () und is_readable (), um Entwicklern zu helfen, Erlaubnisurteile zu fällen. In praktischen Anwendungen kann die Kombination dieser beiden Funktionen die Zugriffsrechte der Datei genauer steuern, um sicherzustellen, dass die Datei vor der Ausführung den erwarteten Bedingungen erfüllt.
Die Funktion is_execable () wird verwendet, um zu überprüfen, ob die angegebene Datei die Ausführungsgenehmigung hat. Der Rückgabewert der Funktion ist ein boolescher Wert, der true zurückgibt, wenn die Datei ausführbar ist, ansonsten falsch .
<span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'/path/to/script.php'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_executable</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Die Datei ist ausführbar。"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Diese Datei ist nicht ausführbar。"</span></span><span>;
}
</span></span>Die Funktion is_readable () wird verwendet, um zu prüfen, ob die Datei die Berechtigung für die LEAD hat. Ähnlich wie is_execable () gibt is_readable () auch einen booleschen Wert zurück, wenn die Datei lesbar ist und ansonsten falsch ist .
<span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'/path/to/script.php'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_readable</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Die Datei ist lesbar。"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Diese Datei ist nicht lesbar。"</span></span><span>;
}
</span></span>Manchmal reicht es nicht aus, nur zu überprüfen, ob eine Datei lesbar oder ausführbar ist, und Entwickler müssen möglicherweise beide Berechtigungen gleichzeitig beurteilen. Angenommen, wir müssen sicherstellen, dass eine Datei sowohl lesbar als auch ausführbar ist, was durch Verwendung beider Funktionen gleichzeitig erreicht werden kann.
<span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'/path/to/script.php'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_readable</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>) && </span><span><span class="hljs-title function_ invoke__">is_executable</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Die Datei ist sowohl lesbar als auch ausführbar。"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Diese Datei hat keine Berechtigungen gelesen, schreiben oder ausführt。"</span></span><span>;
}
</span></span>Angenommen, wir schreiben ein Skript, mit dem der Benutzer Dateien hochladen und ausführen kann. Um sicherzustellen, dass die hochgeladene Datei über die erforderlichen Berechtigungen verfügt, müssen wir überprüfen, ob die Datei vor der Ausführung lesbar und ausführbar ist.
<span><span><span class="hljs-comment">// Der Pfad der vom Benutzer hochgeladenen Datei</span></span><span>
</span><span><span class="hljs-variable">$uploadedFile</span></span><span> = </span><span><span class="hljs-string">'/path/to/uploaded/script.php'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_readable</span></span><span>(</span><span><span class="hljs-variable">$uploadedFile</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Dateien können lesbar sein。"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Datei nicht lesbar。"</span></span><span>;
}
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_executable</span></span><span>(</span><span><span class="hljs-variable">$uploadedFile</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Datei ausführbar。"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Datei nicht ausführbar。"</span></span><span>;
}
</span></span>Sicherheitspriorität : Stellen Sie sicher, dass die Dateiquelle zuverlässig ist, bevor die Skriptausführung zuzulassen. Wenn Sie externe Uploads durchführen, müssen Sie besonders vorsichtig sein, um böswillige Dateien auszuführen.
Prinzip der Minimierung von Berechtigungen : Geben Sie Skripten keine unnötigen Berechtigungen, insbesondere in Produktionsumgebungen. Für sensible Skriptdateien ist es am besten, nur Leseberechtigungen zu geben, um eine direkte Ausführung zu vermeiden.
Fehlerbehandlung : Stellen Sie sicher, dass Sie bei der Beurteilung von Dateiberechtigungen Situationen angemessen behandeln können, in denen die Berechtigungen nicht ausreichend sind, z. B. zurückgegebene Fehlermeldungen oder Protokolle für die anschließende Fehlerbehebung.
Durch die Kombination von iS_Execable () und is_readable () Funktionen können Entwickler die Ausführungsberechtigungen und die Lesbarkeit von Dateien effektiv beurteilen. Die rationale Verwendung dieser Funktionen wird dazu beitragen, die Sicherheit der Anwendung zu verbessern und einige Sicherheitsrisiken zu vermeiden, die durch Erlaubnisfragen verursacht werden. Darüber hinaus ist die Beurteilung der Dateiberechtigungen nur ein Teil des Sicherheitsschutzes, und Entwickler sollten auch weitere Maßnahmen wie Eingabemittelüberprüfung, Dateitypprüfung usw. ergreifen, um die Gesamtsicherheit des Systems zu gewährleisten.
Verwandte Tags:
is_executable