Codeigniter Ajax风险与Get

时间:2014-03-25 00:32:59

标签: php ajax codeigniter security get

在Ajax中使用GET方法有什么安全隐患?在下面的示例中我应采用哪些方法来应对威胁?

在一个非常简单的工具中,我有一个像下面这样的Ajax-codeigniter代码......没有表单提交和数据库连接..我只想得到一个php函数的输出(代码中的targetfucntion)到网页(在HTML中的targetDiv Div)任何人都可以看到该网页,无需登录......

我读过GET比POST更有点不安全。我尝试使用POST方法,但它有一些问题。所以不能这样做。所以我使用GET方法。我应该采取任何预防措施,如输入卫生等..请帮助我! 谢谢!

控制器     

class Thecontroller extends CI_Controller
{
    function __construct()
    {
            parent::__construct();
            $this->load->helper('url');
    }

   function idea_generator() {
       $this->load->view('myviewfile');
   }

   function targetfunction() {
echo somefunction();
   }
}

?>

查看文件 - " myviewfile"

<html>
<head>
<title>Title</title>
<script language="javascript">
var XMLHttpRequestObject = false;

if(window.XMLHttpRequest) {
 XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
 XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}

function getData(dataSource,divID)
{
 if(XMLHttpRequestObject) {
   var obj = document.getElementById(divID);
   XMLHttpRequestObject.open("GET",dataSource);

   XMLHttpRequestObject.onreadystatechange = function()
   {
   if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
   {
       obj.innerHTML = XMLHttpRequestObject.responseText;
   }
   }

   XMLHttpRequestObject.send(null);

  }


}

</script>
</head>
<body>
<h1>My Cool App</h1>
<input type="button" value ="Submit!!" onclick="getData('targetfunction','targetDiv')">
<div id="targetDiv">
<p>The fetched message will appear here </p>
</div>
</body>

</html>

1 个答案:

答案 0 :(得分:1)

如果没有表单提交且CodeIgniter在$this->input->get()方法中不通过$_GET?var1=value&var2=value2(网址后面的参数,即targetfunction())接受任何输入,那时我就​​没有安全漏洞了。

此外,默认情况下,GET请求中的CodeIgniter sanitizes some strange characters也是。