【问题标题】:5 characters added in the middle of my URL我的网址中间添加了 5 个字符
【发布时间】:2016-12-05 09:44:25
【问题描述】:

我意识到这可能是一个非常晦涩难懂的问题,但它让我发疯了,在我网站上的页面之间导航时,我在 URL 中插入了 5 个额外的字符。 (例如http://track.chhs.nsw.edu.au/UXTWP/userAccount.php?)正在添加 UXTWP,我不确定从哪里开始,但它会随机破坏导航。

该网站托管在 goDaddy 上。 它包含 HTML CSS PHP JavaScript 和 mySQL。 一切都运行良好,直到我在 PHP 中添加了一个“修复”以阻止潜在的“黑客”,该黑客将使用在 URL 中传递的 id 来切换查看的内容。 我不确定这是不是问题,但这是错误开始发生之前的最新更改。

这是site 我也希望将代码放在phpfiddle上,但我不确定要添加什么?

if(isset($_GET['a'])){
    if(strpos($userRow['sID'], $_GET['a']) !== false) {
        $_SESSION['student']=$_GET['a'];
        $tempArray = db_select("SELECT *  FROM student WHERE sID ='".$_SESSION['student']."'");
        $studentRow = array_shift($tempArray);
        $_SESSION['impactTool'] =$studentRow['impactAssToolID'];
        $SName = $studentRow['sName'];
        $SDOB = $studentRow['dob'];
        $SFormDate = $studentRow['formDate'];
        $prevInf = $studentRow['prevInfo'];
        $famInf = $studentRow['famInfo'];
        $contInf = $studentRow['contextInfo'];
        $impactIDMsg = "?z=".$_SESSION['impactTool'];
        $btnFlag = true;
        }else{
            header("Location:logout.php");
        }

如果用户试图访问不属于他们的学生的详细信息,其目的是通过注销将用户转回到登录屏幕。

提前感谢您提供的任何帮助。

【问题讨论】:

  • 所提供的代码中的任何内容都不会更改 url
  • 我没有任何直接访问 URL 的代码,除了带有 HTML a 标签的标准导航和一个 php 构建标签
    <ul> <?php foreach($studentRow as $val){ foreach($val as $row){ echo "<li style='clear:both;'><input type='checkbox' value ='".$row['sID']."' name='removeStudent[]' class='deleteButton'><a href='studentProfile.php?a=".$row['sID']."'> ".$row['sName']."</a></li>"; @ 987654328@}?></ul>
  • 它是您的代码添加字符,所以我不知道我们如何帮助解决它
  • 我很高兴接受是我的代码创建了额外的字符,但它只创建了 5 个字符,将它们放置在域和试图导航到的页面之间。每个页面都有不同的 php 函数连接到它们,跨页面似乎有一个常见的错误代码不常见?
  • 很高兴发布所有或任何要查看但不知道从哪里开始的代码

标签: php mysql hosting


【解决方案1】:

好的,这次我认为它是固定的!非常感谢@Progrock 的持续测试和想法。 修复: 我在站点的根目录中包含了一个空白的 .htaccess 文件。 现在我可以使用现场导航和浏览器导航浏览不同的页面,我不能再创建错误了。

我希望这是一个永久性修复,我最好的猜测是浏览器/服务器在特定触发器上寻找 .htaccess 文件,而没有找到服务器通用 .htaccess 文件。

希望这篇文章能帮助将来遇到类似问题的人。

【讨论】:

  • 如果您可以访问文件系统,如果 Apache 允许覆盖,则很可能会在 .htaccess 文件中搜索目录和父目录。一直扫描您的文件系统。之前是否有一个 .htaccess 文件被您破坏了?这是共享主机吗?另一个站点/脚本是否可以在目录树的某处写入 .htaccess 文件?谨慎行事。
【解决方案2】:

不是答案,而是观察:

我终于遇到了使用curl查看标题时的bug:

curl -I http://track.chhs.nsw.edu.au 

输出:

HTTP/1.1 302 Found
Connection: close
Pragma: no-cache
cache-control: no-cache
Location: /TSXbZ/

不久之后,同样的 curl 调用导致了没有重定向的所需页面。因此,正如您所说,该错误是不一致的。

如果我在 PHP 代码中进行标头位置重定向。或者我使用 .htaccess 规则来做类似的事情:返回标头是这样的:

Server: Apache/2.2.22 (Foo)

缺少 apache 服务器标头(对于您的某些响应)让我怀疑代理或缓存层可能位于您的网络服务器和 Php 代码的前面。

阅读您的代码,我看不出插入字符的任何明显原因。

注意与以下响应(返回标头)的后续差异:

3:21% curl -I http://track.chhs.nsw.edu.au       
HTTP/1.1 302 Found
Connection: close
Pragma: no-cache
cache-control: no-cache
Location: /XRjRZ/

3:23% curl -I http://track.chhs.nsw.edu.au
HTTP/1.1 302 Found
Connection: close
Pragma: no-cache
cache-control: no-cache
Location: /

3:24% curl -I http://track.chhs.nsw.edu.au
HTTP/1.1 302 Found
Connection: close
Pragma: no-cache
cache-control: no-cache
Location: /

3:24% curl -I http://track.chhs.nsw.edu.au/index.php
HTTP/1.1 302 Found
Connection: close
Pragma: no-cache
cache-control: no-cache
Location: /index.php

3:24% curl -I http://track.chhs.nsw.edu.au/index.php
HTTP/1.1 200 OK
Date: Fri, 02 Dec 2016 15:24:56 GMT
Server: Apache/2.4.23
X-Powered-By: PHP/5.4.45
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=60d307bdc288bf1371dc5e0c8c397cdf; path=/
Vary: User-Agent
Content-Type: text/html

您有深奥的 .htaccess 或服务器配置吗?

【讨论】:

  • 前段时间我创建了一个 .htaccess 文件,但它并没有按要求纠正问题,所以将其删除,并且并不真正了解如何实现它。我没有服务器配置文件。即使我删除了文件,它是否仍驻留在服务器缓存中?顺便说一句,非常感谢您坚持解决这个问题,因为我在这个问题上已经超出了我的深度。
  • 我尝试使用 .htaccess 的目的是捕获 404 错误并将用户重定向到 index.php 页面。
  • IP 地址是否符合您对主机的期望?当我查找 IP 时,我得到了一个 Go Daddy 服务器。这可能是一个邪恶的代理/恶意软件吗?
  • Godaddy 是我用来托管的公司,所以听起来不错。该网站是否需要 .htaccess 文件?可能是我删除了服务器正在寻找的一些默认文件,而当它没有找到时,它指的是服务器使用的通用文件(如果不存在)?
  • 不确定是谁投了反对票,但我认为这不值得,因为这些信息有助于找到最终解决方案。抱歉@Progrock 我投了赞成票,但我的低级别不允许它显示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多