Php 其他人可以使用fwrite操作我域中的文件吗?
在我拥有的域名上,是什么阻止其他网站的其他程序员使用类似的代码操纵我的页面Php 其他人可以使用fwrite操作我域中的文件吗?,php,html,security,Php,Html,Security,在我拥有的域名上,是什么阻止其他网站的其他程序员使用类似的代码操纵我的页面 <?php $fname = 'www.somedomain.com'; $open = fopen($fname, 'w'); $txt = "<!DOCTYPE HTML>\n<html>...<!--Code goes here-->...</html>"; fwrite($open, $txt); fclose($open); ?> 如果您是指在同一台
<?php
$fname = 'www.somedomain.com';
$open = fopen($fname, 'w');
$txt = "<!DOCTYPE HTML>\n<html>...<!--Code goes here-->...</html>";
fwrite($open, $txt);
fclose($open);
?>
如果您是指在同一台服务器上以某种形式的共享主机模式运行代码的其他人:操作系统文件权限。系统的每个用户(即您)都有自己的用户名,文件和目录只属于该用户,其他用户无法访问
如果您指的是其他任何地方的任何其他人,甚至不在同一台服务器上:该服务器只运行一个只接受HTTP网络请求的web服务器。您无法通过HTTP服务器访问文件系统。服务器根本不允许您通过internet访问任何文件。这与允许公众以只读格式访问文件的操作系统权限有关。@MA不,不是。如果您不指定方案,请将参数设置为
fopen()
(不是$fopen
,顺便说一句)将被解释为常规文件,因此PHP将尝试读取名为www.somedomain.com
的本地文件。如果您要提供类似http://www.somedomain.com
,PHP将调用,它将通过HTTP GET请求为您提供对该资源的只读访问权。@RobbyCornelissen您是说fopen()不能使用绝对路径吗,即使它与调用它的代码在同一个域中,这都取决于您使用的协议。对于常规文件系统访问,您仅限于文件系统中设置的权限,并且没有域的概念。如果您通过HTTP、FTP、SMB、SSH或其他方式进行访问,那么您将受到协议和提供协议的服务的限制。