首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PHP 使用 $_SERVER 获取当前页面地址及其安全性问题

    $_SERVER[‘PHP_SELF’] $_SERVER['PHP_SELF'] 表示当前 php 文件相对于网站根目录的位置地址,与 document root 相关。...$_SERVER[‘PHP_SELF’] 安全性 由于利用 $_SERVER['PHP_SELF'] 可以很方便的获取当前页面地址,因此有人在提交表单数据到当前页面进行处理时,往往喜欢使用如下这种方式:...: php/index.php/test/foo”> 显然这段代码不是我们期望的,攻击者可以在 URL 后面随意加上攻击代码。...可以的条件下,使用 _SERVER['SCRIPT_NAME'] 或 _SERVER['REQUEST_URI'] 替代 在公共代码里将 $_SERVER['PHP_SELF'] 进行重写: $phpfile...= basename(__FILE__); $_SERVER['PHP_SELF'] = substr($_SERVER['PHP_SELF'], 0, strpos($_SERVER['PHP_SELF

    2.2K31

    令PHP初学者的困惑的10个知识点

    【1】页面之间无法传递变量 get,post,session在最新的php版本中自动全局变量是关闭 的,所以要从上一页面取得提交过来得变量要使 用$_GET['foo'],$_POST['foo'],...注:PHP中的超全局变量 从PHP 4.2.0 开始,register_globals 的默认值为 off,这样一来,以前的很多可以直接使用的 变量,如 $PHP_SELF 或者你设定的SESSION...以前的$PHP_SELF对应$_SERVER['PHP_SELF'],你可以 使用phpinfo来查看你的$_SERVER变量。 $_GET 经由 HTTP GET 方法提交至脚本的变量。...['error'] 是在 PHP 4.2.0 版本中增加的。...【5】更改php.ini后没有变化 重新启动web server,比如IIS,Apache等等,然后才会应用最新的设置。 【6】有时候sql语句不起作用,对数据库操作失败。

    82350

    代码审计基础之还不滚进来学习

    例如,在地址为 HTTP://EXAMPLE.COM/TEST.PHP/FOO.BAR 的脚本中使用 $_SERVER['PHP_SELF'] 将得到 /TEST.PHP/FOO.BAR。...$_SERVER['HTTP_REFERER'] 引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。...在PHP中$_REQUEST可以获得以POST方法或者GET方法提交的数据 其次他比较慢,所以在此建议不要使用$REQUEST,应该从$GET,$POST,$COOKLE,$ENV,$SERVER等变量中取出需要的值这个亚子...从服务器上获取数据,把参数数据队列加到提交表单的 ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL 中可以看到 ?...用户看 不到这个过程 故障排查,有的小伙伴在测试post提交时会遇到这种报错(以踩坑) ? 别慌,post提交和get提交不同,打开火狐post data 调试即可

    99640

    Web for Pentester 实验合集

    接下来,就来尝试一下,首先,看到提交的内容都是在完整的在引号里,那么就可以先闭合引号,然后分号(;)表示一句结束,然后alert语句,最后注释(//)最后一个分号即可,即?...$_SERVER["PHP_SELF"]的值是当前php文件相对于网站根目录的位置地址,也就是说,是返回当前正在执行脚本的文件名。...但是呢,这个$_SERVER["PHP_SELF"]的值是可以通过url上的值控制的,比如说/xss/example8.php,在url上改成/xss/example8.php233 那么$_SERVER...["PHP_SELF"]的值就是/xss/example8.php233,(当然不能直接php233,这样就请求不到文件了,/ 如果不是伪静态的话,一般是指目录,由于已经请求到具体的php文件了,后面就不会管了...,根据上下文闭合双引号,标签等 第八关则是考察了php的漏洞结合的xss,$_SERVER['PHP_SELF'] 第九关是DOM-XSS 其实xss漏洞也主要是这些,在CTF比赛中或者在实际的发掘漏洞中

    1.2K50

    360webscan防注入脚本全面绕过

    那我们来看这个函数,这个函数第一个字段是白名单内容,我们在webscan_cache.php中可以找到: //后台白名单,后台操作将不会拦截,添加"|"隔开白名单目录下面默认是网址带 admin /...然后再给大家说明一下$_SERVER['PHP_SELF']是什么:     PHP_SELF指当前的页面绝对地址,比如我们的网站:     https://www.leavesongs.com/hehe.../index.php     那么PHP_SELF就是/hehe/index.php。     ...只要PHP_SELF中含有白名单字段即可。     这也可以发散到很多cms上,php_self也是可控变量,注意过滤。    ...来测试一下看看,在本地搭建一个cmseasy,最新版20140118,提交一个含有敏感字符union select的查询,被360拦截了: ?

    2.3K10

    新手小白都能搭建的留言系统

    NULL, message TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );从上面不难看出,我也在留言数据上加了一个发布时间...我们要获取数据的话,可以创建一个config.php文件用于保存数据库信息,具体操作可以看我之前的文章。然后后端调用这个config.php文件,如下:php// 引入数据库配置文件include 'config.php';// 检查是否是 POST 请求if ($_SERVER["REQUEST_METHOD"] == "POST" && empty...>在这里我对留言为空的状态,都做了相应的提示,其实这里直接也可以在input组件上设置“required”属性就行了,我只是习惯这样去写。然后为了跟主站保持统一,也是使用的bootstrap来布局。...php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?

    15020

    php基本语法复习

    对象 对象是存储数据和有关如何处理数据的信息的数据类型 php中必须明确地声明对象 首先必须声明对象的类,使用class关键词,类是包含属性和方法的结构 在对象类中定义数据类型,然后在该类的实例中使用此数据类型...,当用户通过点击提交按钮来提交表单数据时,表单将发送到标签的 action 属性中指定的脚本文件....>标签的enctype属性规定了在提交表单时要使用哪种内容类型,在表单需要使用二进制数据时,比如文件内容,请使用”multipart/form-data” 标签的type=”file”属性规定了应该把输入作为文件来处理...,表单数据会发送到名为welcome.php的文件供处理,表单数据是通过HTTP POST的方式发送的 如需显示出被提交的数据,您可以简单地输出(echo)所有变量。”...>"> 当提交此表单时,通过method=’post’发送表单数据 $_SERVER[“PHP_SELF”] $_SERVER[“PHP_SELF”]是一种超全局变量,它返回当前执行脚本的文件名 因此,

    23210

    用 PHP 实现一个简单的留言板功能

    简单来说,我们需要实现以下几点: 有人能留言:用户可以在页面上输入自己的昵称和留言内容,然后提交。 别人能看到留言:提交的留言要显示在页面上,并且按最新的留言排在最前面。 多了怎么办?分页啊!...防止小问题:比如用户一不小心刷新页面导致重复提交留言,这种情况也要处理。 需求大概就这些,咱们就围绕这些来做。 数据库是核心,先设计表留言板的核心就是数据库。留言内容得保存到哪里呢?...后端处理:保存留言用户提交表单之后,内容要保存到数据库里。我们新建一个 add_message.php 文件,专门用来处理提交的留言。 在 index.php 里改一下代码,加入分页逻辑: php// 分页参数$page = isset($_GET['page']) ?...php if ($page > 1): ?> php echo $page - 1; ?>">上一页 php endif; ?

    12000
    领券