iT邦幫忙

1

這段 PHP 程式有破綻嗎 ?

php
  • 分享至 

  • xImage
<?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();
        }
        ////
    }
?>
看更多先前的討論...收起先前的討論...
石頭 iT邦高手 1 級 ‧ 2019-03-30 11:08:31 檢舉
請問何謂你說的破綻
淺水員 iT邦大師 6 級 ‧ 2019-03-30 11:50:39 檢舉
這篇充滿武俠風
weiclin iT邦高手 4 級 ‧ 2019-03-30 19:12:33 檢舉
看似全身上下都是破綻, 卻又毫無破綻, 難道這就是傳說中的自然體
小魚 iT邦大師 1 級 ‧ 2019-03-30 19:27:08 檢舉
全身都是破綻的才是真正的高手!
alex9453 iT邦新手 2 級 ‧ 2019-03-30 19:51:12 檢舉
應該是說哪裡寫的不好
badbayz iT邦新手 4 級 ‧ 2019-03-30 22:17:57 檢舉
全身都是破綻才能衍生永續的維護 ~~ 高手
rewrite iT邦新手 2 級 ‧ 2019-03-31 08:54:44 檢舉
若有似無的境界!
com iT邦新手 4 級 ‧ 2019-03-31 22:25:52 檢舉
插入式攻擊似乎可以得手。
認真說,不懂OO,等於不會寫code,
理解這句話,你就知道問題在哪了
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
ysliu
iT邦見習生 ‧ 2019-04-02 08:59:29
最佳解答

插入攻擊有可能達成 +1

另外,個人比較喜好使用stmt綁定變數
https://www.php.net/manual/zh/class.mysqli-stmt.php

安全是相對的,沒有弱點只是未被試出來,抑或者覺得沒意義
有沒有「破綻」,提問的範圍有點廣了

1
淺水員
iT邦大師 6 級 ‧ 2019-03-30 19:32:16

認真回一下,可能要考慮 if 判斷的狀況,例如下面會印出 false

$x='0';
if($x) {
    echo 'true';
} else {
    echo 'false';
}

這會造成你的使用者無法輸入 0 這個值

另外 mysql_real_escape_string 我沒用過,不過以 這篇 所言好像還 OK。

3
一級屠豬士
iT邦大師 1 級 ‧ 2019-03-31 11:29:33

用 root 登入資料庫,這很糟糕的.
你都看什麼書在學啊.怎麼一堆怎樣糟糕怎樣來.

3

我也認真回一下好了。

不談登入root問題
不談mysql不支援問題
不談SET NAME的問題
不談post取值問題
不談未知東西跑啥的問題

這樣這程式就有金鋼不壞之身了吧。

PS:
得了吧你,基本應用的程式碼。也不知道是哪邊抄過來的教學程式碼。
如果我們這群人說不行的話。你不就會去怪寫這篇教學的人爛?
不要想要讓我們當壞人。
人家教學程式文只是讓你去了解應用。安全性寫法什麼的是要靠自已的經驗。
光這樣子來問人家,我就不相信你是真心想要問。真心要做這處理的話。
是要自行去研究處理的。你還不夠格達到這個地步。

0
舜~
iT邦高手 1 級 ‧ 2019-04-02 11:20:53

有沒有破綻....題外話
建議您可以用網站安全掃描工具去掃描您的網站,看其報告即可知你的網站有啥問題~~~
不然就算你這段沒問題,人家沒透過你這段,直接從外部連到你資料庫DIY....XDDD

我要發表回答

立即登入回答