我們有一個php頁面,它是該網站的管理部分。它用於在數據庫上執行一些更新操作。代碼如下所示會話檢查繞過漏洞
session_start();
if (!isset($_SESSION['somevariable']))
{
header("Location:loginpage.php");
}
$id=$_GET['somevariable];
$sql = "UPDATE sometable SET somecolumn='' where someothercolumn=?";
$stmt = $con->prepare($sql);
$stmt->bind_param('s',$id);
$stmt->execute();
我們已經注意到是一直存在的一些漏洞,這一段代碼似乎是從在週期性間隔(5秒),該犯規的運行未知來源似乎是有人管理部分的密碼並正在手動運行操作。
我們想知道黑客是否可以繞過此登錄檢查並執行其餘代碼而不必輸入密碼?對上述代碼中的漏洞的任何見解都將有所幫助。在此先感謝
注意到代碼中缺少一個報價! – mithunsatheesh 2014-09-23 08:41:50
@knittl關於攻擊者如何做到這一點以及如何避免攻擊的建議?將它改爲POST而不是獲得幫助? – 2014-09-23 08:47:21
@MaximDsouza:[pouya darabi's answer](http://stackoverflow.com/a/25990765/112968)是正確的。 'header'不會停止腳本執行 – knittl 2014-09-23 09:06:23