<?php
require_once ("Includes/session.php");
require_once ("Includes/simplecms-config.php");
require_once ("Includes/connectDB.php");
include("Includes/header.php");
confirm_is_admin();
if (isset($_POST['submit']))
{
$menulabel = $_POST['menulabel'];
$content = $_POST['content'];
///
if($menulabel && $content) {
// 建立MySQL的資料庫連接
$link = mysqli_connect("localhost","root","A12345678");
if ( mysqli_errno($link) != 0) { // 是否有錯誤
error_handle($link);
} else {
echo "開啟MySQL資料庫連接成功!<br/>";
}
if ( !mysqli_select_db($link, "myschool") ){
error_handle($link);
}
else {
echo "選擇資料庫: $dbname 成功!<br/>";
}
$_menulabel = mysql_real_escape_string($menulabel);
$_content = mysql_real_escape_string($content);
$query = "INSERT INTO pages (menulabel, content) VALUES ('$_menulabel', '$_content')";
$creationWasSuccessful = $link->query($query)
if ($creationWasSuccessful)
{
header ("Location: index.php");
}
else
{
echo '錯誤: 新增新頁面失敗...'. $link->error;
}
$link->close();
}
////
}
?>
插入攻擊有可能達成 +1
另外,個人比較喜好使用stmt綁定變數
https://www.php.net/manual/zh/class.mysqli-stmt.php
安全是相對的,沒有弱點只是未被試出來,抑或者覺得沒意義
有沒有「破綻」,提問的範圍有點廣了
認真回一下,可能要考慮 if 判斷的狀況,例如下面會印出 false
$x='0';
if($x) {
echo 'true';
} else {
echo 'false';
}
這會造成你的使用者無法輸入 0 這個值
另外 mysql_real_escape_string 我沒用過,不過以 這篇 所言好像還 OK。
我也認真回一下好了。
不談登入root問題
不談mysql不支援問題
不談SET NAME的問題
不談post取值問題
不談未知東西跑啥的問題
這樣這程式就有金鋼不壞之身了吧。
PS:
得了吧你,基本應用的程式碼。也不知道是哪邊抄過來的教學程式碼。
如果我們這群人說不行的話。你不就會去怪寫這篇教學的人爛?
不要想要讓我們當壞人。
人家教學程式文只是讓你去了解應用。安全性寫法什麼的是要靠自已的經驗。
光這樣子來問人家,我就不相信你是真心想要問。真心要做這處理的話。
是要自行去研究處理的。你還不夠格達到這個地步。
有沒有破綻....題外話
建議您可以用網站安全掃描工具去掃描您的網站,看其報告即可知你的網站有啥問題~~~
不然就算你這段沒問題,人家沒透過你這段,直接從外部連到你資料庫DIY....XDDD