跨域文件编辑

时间:2010-04-24 10:30:06

标签: php security file writing

我需要知道,我的脚本在哪里使用(它是出售,我不想要任何小偷)。 我想在我的服务器上写文件,用户的IP,运行脚本的域,日期等等。我试过fopen,fwrite,但is_file_writable返回它不是。文件CHmods是777,它的父目录也有777个chmods。

现在我正在尝试这样的事情:

<?php
$file = 'http://www.misiur.com/security/seal.txt';

$data = date("Y-m-d H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
$svr = $_SERVER['SERVER_NAME'];
$str = "[$data] Loaded by $ip at $svr\r\n";

$current = file_get_contents($file);
$current .= $str;
file_put_contents($file, $current);
?>

然而 - 没有任何反应。我该怎么办?

1 个答案:

答案 0 :(得分:1)

HTTP网址包装器doesn't allow writing

执行此操作的最佳方法是在远程服务器端设置脚本(在您的示例中为misiur.com

http://www.misiur.com/security/write_seal.php

使用POST将新文本文件的内容发送到该脚本。然后,该脚本将file_put_contents()收到的信息在本地

Here是一个代码段,允许您轻松地将POST内容发送到远程脚本。你需要POST,因为GET的大小通常限制在1-2千字节。

当然,您需要以某种方式保护该脚本以防止恶意使用,例如通过基于.htaccess的密码保护或密钥。