在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>
答案 0 :(得分:1)
如果没有表单提交且CodeIgniter在$this->input->get()
方法中不通过$_GET
或?var1=value&var2=value2
(网址后面的参数,即targetfunction()
)接受任何输入,那时我就没有安全漏洞了。
此外,默认情况下,GET请求中的CodeIgniter sanitizes some strange characters也是。