Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

標籤: 程式設計

PHP avoid SQL Injection

Posted on 2008 年 1 月 28 日2021 年 3 月 12 日 By 日落 在〈PHP avoid SQL Injection〉中有 2 則留言

SQL Injection 是一個寫 PHP 時大家常常忘掉的問題,但是一忘掉就會讓駭客有機可乘。

用 PHP 做登入時,SQL 語法大概會長這樣:

   select * from member where ID = '$USER_ID' and password = '$PASSWORD'

其中錢字號的是 PHP 的變數。登入時使用者填「test」、密碼填「123」,則 SQL 語法會變成下面這樣:

   select * from member where ID = 'test' and password = '123'

不過萬一有人要惡作劇,使用者填「test」、密碼填「’ or ”=’」,則 SQL 語法就會變成下面這樣:

  select * from member where ID = 'test' and password = '' or ''=''

看出來了嗎?如果把顏色去掉,最後一個判斷式是「or ”=”」,而這個判斷永遠會成立,所以即使前面沒有密碼也有資料會被列出來。這是最簡單的 SQL Injection,如果駭客心狠手辣的話,還能夠將機密資料列出、修改資料,甚至直接將資料庫刪除,所以不小心不行。如果有興趣的話可以參考以下相關網頁:

資安論壇 :: 觀看文章 – SQL Injection之解決建議措施及相關資訊彙整
http://forum.icst.org.tw/phpBB2/viewtopic.php?t=4376

SQL Injection WhitePaper
http://www.spidynamics.com/whitepapers/WhitepaperSQLInjection.pdf

PHP 5 有提供 magic quote 會自動將單引號、雙引號加上反斜線,網路上也有寫好的程式可以使用,像是我之前寫的「PHP avoid SQL Injection 2」,但事實上這樣還是不夠的。

SQL 語法中,欄位的資料型態會有不同的語法,像說 SerialNumber = 123 和 UserName = ‘zero’,就有單引號的差別,如果 PHP 讀取欄位資料後沒有特別去注意資料型態,可能就會發生 SQL 語法中字串沒有使用引號的錯誤,丟出錯誤訊息一樣很危險。所以在開始使用變數時,最好做資料型態的轉換或是辨認,以免發生意想不到的狀況。

想要試試看自己的網頁有沒有上述的漏洞,可以使用 Parosproxy 這套漏洞檢測軟體做測試,他會再抓取所有可以使用的網頁連結以後,對每個網頁進行特定的檢測。

首先要先設定瀏覽器的 proxy 設定,讓瀏覽器透過 Paros 來上網,設定如下:

接下來把 Paros 啟動,然後讓瀏覽器瀏覽你準備要測試的網頁,這樣 Paros 就會抓到網頁位置,抓到以後就可以準備掃瞄。

在上面的清單中,選擇要掃瞄的網站以後,點選功能表的 Analyse -> Spider,抓取整個網站所有的超連結。

抓取後左下方應該會出現網站內的超連結列表,Paros 之後就針對這幾個連結進行漏洞測試。準備好開始測試後,點選 Analyse -> Scan 即可。

待掃瞄結束後,左下角 alert 頁籤中會顯示出你網站有漏洞的網頁,以及漏洞的類型,但是並不是有顯示就表示一定有漏洞,也不表示找不到漏洞就絕對安全,請自行判斷掃瞄結果。

掃瞄結束後,記得把瀏覽器的 proxy 設定改回來,不然 Paros 關掉以後就不能上網了。

Tags:PHP, 程式設計, 資訊安全

計概考題

Posted on 2008 年 1 月 8 日2021 年 3 月 12 日 By 日落 在〈計概考題〉中有 10 則留言
int a = 0;
int b = 1;
if ((a=1) || (b=2)) {
printf("Hello, a=%d, b=%d", a, b);
}
else {
printf("World! a=%d, b=%d", a, b);
}

令我出乎意料的,結果是「Hello, a=1, b=1」,也就是說「||」在第一個判斷成立以後不會執行第二個判斷。

不過,這題題目其實是要考你 if 必須注意不可將「==」打成「=」。但是既然是錯誤的程式碼,還要我們告訴他執行結果,我很想知道出題老師在想什麼。

Tags:程式設計

Use Latex in Doku in FreeBSD

Posted on 2008 年 1 月 1 日2021 年 3 月 12 日 By 日落 在〈Use Latex in Doku in FreeBSD〉中尚無留言

Necessary ports:/usr/ports/graphics/ImageMagick
/usr/ports/print/teTeX
/usr/ports/print/ghostscript-gpl
/usr/ports/print/dvips

Following the official wiki, install the plugins in the directory. It will be in dokuwiki/lib/plugins. After this, fix class.latexrender.php because the paht of the program is not the same as Linux system.

class.latexrender.php (line:36 – 39):var $_latex_path = "/usr/local/bin/latex";
var $_dvips_path = "/usr/local/bin/dvips";
var $_convert_path = "/usr/local/bin/convert";
var $_identify_path="/usr/local/bin/identify";

If Latex won’t work, try this way:
https://b2.zeroplex.tw/2009/02/use-latex-in-mediawiki-in-freebsd.html

Tags:程式設計, 網路架站

PHP 設計指導、技巧

Posted on 2007 年 12 月 28 日2021 年 3 月 12 日 By 日落 在〈PHP 設計指導、技巧〉中尚無留言

PHP Programming Tutorials, Tips and Scripts
http://dev.fyicenter.com/faq/php/

Tags:PHP, 分享, 程式設計

在網頁中嵌入 FCKeditor by PHP

Posted on 2007 年 12 月 24 日2021 年 3 月 12 日 By 日落 在〈在網頁中嵌入 FCKeditor by PHP〉中尚無留言

網路上的所見即得編輯器真多,昨天為了讓使用者不用自己打 HTML 標籤,花了一些時間把 FCKeditor 嵌入網頁中使用,功能比我想像中的還要強大!不但基本該有的按鈕都有了,還支援復原、剪貼簿、圖片和檔案上傳、表格、排版,甚至還能編輯表單!連在網頁上面顯示的工具列也可以自訂按鈕功能和版面樣式!

功能強但是安裝卻很簡單,只要在 PHP 程式碼中也只要加入五行左右的程式碼就可以正常運作,不賴吧?

首先你必須先引用 FCKeditor 已經寫好的程式碼,裡面會宣告編輯器所用到的物件和物件屬性:require("fckeditor/fckeditor.php");
再來就可以宣告編輯器物件,並且對物件屬性做設定:

$oFCKeditor = new FCKeditor('FCKeditor1');
$oFCKeditor->BasePath = 'fckeditor/';
$oFCKeditor->Value = 'Default text in editor';

第一行 initialize 中的字串,是產生文字編輯區時編輯區的名稱,也就是 textarea 的 name 屬性,以上面的範例來說,後端要接收資料就要使用:$_POST[‘FCKeditor1’]。
第二行是設定 FCKeditor 程式所在位置,如果沒有設定好,會無法載入 Javascript 和 CSS 檔,到時候網頁會無法顯示。第三行則是文字編輯區預設會出現的文字。

最後在 <form></form> 中間加上:$oFCKeditor->Create();
這樣顯示出來大概會向這樣:

再來我們加入二個參數來設定編輯器預設的大小:

$oFCKeditor->Width = '100%';
$oFCKeditor->Height = '400';

如果你不喜歡預設的版面,FCKeditor 有提供 office2003 和 silver 的版面可以更換,只要加入版面路徑到參數裡面就可以了:
$oFCKeditor->Config['SkinPath'] = 'skins/office2003/';

當然 FCKeditor 的功能不只如此,其他功能在官方的部落格都有詳細的說明。

FCKeditor Wiki
http://wiki.fckeditor.net/FCKeditor

FCKeditor 官網
http://www.fckeditor.net/

Tags:PHP, 程式設計, 資訊學習

文章分頁

上一頁 1 ... 9 10 11 ... 15 下一頁

其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.