首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript网站漏洞

JavaScript网站漏洞
EN

Stack Overflow用户
提问于 2015-08-30 15:06:08
回答 2查看 87关注 0票数 1

今天早上我注意到我的网站上有一个可能的漏洞,我一点也不确定我的网站是否会被损坏,但是.

在我的网站上,我使用JavaScript代码打开(显示)主页内的不同部分(其他页面);

在主index.php上,我有下面的代码,其中显示了其他页面:

头部:

代码语言:javascript
复制
<?php
$section = "default";
if (isset($_GET["page"]))
{
  $section = $_GET["page"];
}
?>

在身体中:

代码语言:javascript
复制
<script type="text/javascript">
    openPage('<?php echo($page); ?>');
</script>

JavaScript函数是这样一个:

代码语言:javascript
复制
function openPage(page, form)
{
var data = "page=" + page;
if (form != null)
    data += "&" + $("#" + form).serialize();

$("#content").html("<center>Wait..</center>");
$.ajax({
    type: "POST",
    url: "content.php",
    data: data,
    success: function(result) {
        $("#content").html(result);
    }
})
}

The content.php

代码语言:javascript
复制
<?
  if (file_exists("pages/".$page.".php"))
    include("pages/".$page.".php");
  else
  {
    include("pages/default.php");
  }
?>

我的问题是如果我在网址上写:

代码语言:javascript
复制
url.com/index.php?page=</script><script>alert(1)</script>

出现一条警告信息,我能做什么?这很危险吗?我怎么才能修好它?

谢谢你们所有人。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-30 15:10:28

这不是JS漏洞,这是您的代码漏洞。

您可以使用htmlspecialchars:

代码语言:javascript
复制
<?php
$section = "default";
if (isset($_GET["page"]))
{
  $section = htmlspecialchars($_GET["page"]);
}
?>

htmlspecialchars.asp

票数 2
EN

Stack Overflow用户

发布于 2015-08-30 15:14:22

是的,这是危险的,因为有恶意意图的人现在可以在您的域中形成执行客户端代码的URL。这可以从显示一个简单的警报框到劫持cookie。这叫做跨站点脚本

忽略当前的设置是否是一个好的设置,您可以通过消毒 $_GET['page']变量修复漏洞,然后再输出:

代码语言:javascript
复制
htmlspecialchars($_GET['page']);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32297955

复制
相关文章

相似问题

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