【问题标题】:How to prevent xss如何防止xss
【发布时间】:2016-05-30 13:35:17
【问题描述】:

这是我的原生网址:

127.0.0.1//myweb/home.php?u=daniel

现在当我包含这种类型的 xss 时:

127.0.0.1//myweb/home.php/"><script>alert('hacked')</script>?u=daniel

现在好像被黑了,如何避免这种类型的XSS攻击?

添加

这里是其他代码:(我没有添加获取用户数据)

require_once 'core/init.php';

$currentUser = new User();

$report = null;
if(!$currentUser->isLoggedIn()) {
    Redirect::to('index.php');
}

【问题讨论】:

  • 您必须展示管理应用程序这一部分的 PHP 代码。
  • 我在此页面上的代码,只有在用户登录时才会通过,否则它将重定向到index.php,然后其他代码仅用于获取数据。可以吗?

标签: url xss


【解决方案1】:

您始终可以使用 php 过滤掉 url 中所有不必要的部分。
这是您的网站,因此您可以知道网站中哪些字符是无用的。

例如,我知道在我的网站中,双引号/" 字符在我的网站中是无用的。
因此,我可以立即过滤掉任何带有双引号/" 字符的部分。

您可以从以下代码中获取您当前的网址。
$url = $_SERVER['REQUEST_URI']

然后,您只需使用 explode 忽略双引号字符后的任何内容。

$safe_url = explode("\"", $url);

因此,您只需使用 $safe_url[0] 作为您的网址。

【讨论】:

  • 当我在.php 之后使用此脚本/"&gt;&lt;script&gt;alert('hacked')&lt;/script&gt; 时,我的网站也会显示为受到攻击&gt;"&gt;&lt;script&gt;alert("XSS")&lt;/script&gt;&amp;
  • 好吧,你已经知道你的 url 是 127.0.0.1//myweb/home.php?u=daniel 然后,你可以分解 .php 来获得你的安全 url。之后可以获取参数吗?使用 $_GET
  • 另一种方法是使用 post 方法发送您的参数。那么,您无需关心之后的任何数据吗?特点。你可以爆炸 .php 并忽略之后的所有内容。
  • 嗯,这就是我的网站所需要的,当有人尝试在.php 之后放置至少/ 时,我的网页会搜索它,当搜索为假时,它会重定向到错误页面说页面未找到 ?!感谢您的回复。
猜你喜欢
  • 2012-10-28
  • 2015-09-17
  • 1970-01-01
  • 1970-01-01
  • 2011-10-26
  • 2013-05-20
  • 2015-02-18
  • 2011-01-01
相关资源
最近更新 更多