首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSS和file_get_contents?

XSS和file_get_contents?
EN

Stack Overflow用户
提问于 2015-03-06 20:49:52
回答 1查看 768关注 0票数 0

我的网址就像page.php?path=content/x/y/z/aaa.md。下面的php代码XSS-安全吗?

代码语言:javascript
复制
include "Parsedown.php";

function path_purifier($path) {
  if(substr($path, 0, 8) !== "content/")
    return null;
  if (strpos($path,'..') !== false)
    return null;
  return "./" . $path;
}

$parsedown = new Parsedown();
$path = $_GET['path'];
$path = path_purifier($path);
echo $parsedown->text(file_get_contents($path));

谢谢你的关注

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-06 21:18:19

是的,看起来很安全,但还是不完美。在调用is_file()之前,还需要调用file_get_contents()并确保其返回true。此外,为了使它更安全,您可以在其之上实现一个CSRF保护。

此外,请记住,一些主机提供商不允许相对路径。因此,如果像'/content/x/y/file.md'这样的路径可能在您的本地机器上工作,请记住,在某些主机上它不会工作。所以你最好总是使用像__DIR__ . '/content/x/y/file.md'这样的绝对路径

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28907400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档