我有一个html页面,我需要从DB加载一些常用信息(可以被所有人看到)。
所以我把这段代码放在html中:
<script type="text/javascript">
$(document).ready( function() {
setTimeout( "getRate()", 100 );
});
function getRate() {
$.ajax( {
type: "GET",
url: "api.php",
dataType: "json",
data: {call: 'getRate'},
success: function(result){
//set result to the DOM element....
},
error: function(){
}
});
}
</script>
我有一个像这样的api.php文件:
<?php
if($_SERVER['REQUEST_METHOD']=="GET") {
$function = $_GET['call'];
if($function == "getRate") {
//get result from DB
echo json_encode(result);
}
}
但是我的代码审核员说当把这个url直接放在浏览器中&#34; https://****.com/api.php?call=getRate
&#34;时,它也返回了json结果,是否安全?
没有ajax调用请求的秘密信息,所以 它我认为没关系,但我不确定。
这样做会有安全隐患吗?
答案 0 :(得分:1)
如果您的问题是AJAX本身是否安全,那么是的,AJAX一直用于在浏览器和远程API之间交换信息。
至于具体的代码,这里似乎没有提供的漏洞:
call: getRate
参数设置为恶意攻击,则用于生成JSON的SQL查询(或等效项)不易受到注入攻击。https://****.com/api.php?call=getRate
不应该关闭该网站。