PHP fopen() 在 JavaScript 逻辑中的漏洞

24 浏览
0 Comments

PHP fopen() 在 JavaScript 逻辑中的漏洞

我想在本地主机目录下创建一个文本文件。

以下是我的代码。

在app.php下方

document.getElementById("save_button").addEventListener("click", function() {

var content = document.getElementById("final_span").value();

var file_name = document.getElementById("filename").value();

$fn = strstr($file_name, '.', true);

$dir = "../project/Record";

$file = fopen($dir . "/" . $fn . ".txt", "w+");

fwrite($file, $content);

fclose($file);

?>

});

0
0 Comments

PHP fopen() inside javascript logic bug

在上述代码中,出现了一个PHP fopen() inside javascript logic bug的问题。问题的原因是JavaScript无法直接控制PHP的执行,因为JavaScript是在浏览器端执行的,而PHP是在服务器端执行的。为了解决这个问题,可以通过从JavaScript向PHP文件发起ajax调用来创建文件。

解决方法如下:


在app.php文件中,可以通过$_GET['file_name']获取从JavaScript传递过来的文件名,并进行相应的操作。


在这段代码中,通过fopen()函数创建了一个文件,并将内容写入该文件中。

另外,还有一个问题是在app.php文件中没有设置任何响应消息。可以通过在PHP代码中使用echo语句来设置响应消息,如:

echo "File created successfully!";

如果想要在JavaScript中传递变量content的值,可以将链接中的参数修改为:

"app.php?file_name=" + file_name + "&content=" + content

如果不想将内容显示在链接中,可以使用POST方法进行传递。可以参考以下链接中的解决方案:

stackoverflow.com/questions/30414372/…

0