- May 15 Sun 2022 15:50
-
【程式】在 PHPMailer 中使用 Oauth2 認證來透過 GMAIL 發信
- Apr 15 Mon 2019 22:00
-
【程式】整合 reCAPTCHA v3 到 PHP 程式
今天都在研究 Google reCAPTCHA 這機制,相信大家都已經知道這是個反制機器人登入的好東西
依 iThome 於去年 10/30 說明的這篇文章,目前的 reCAPTCHA 已經出到了 v3,而 v3 和 v2 最大的差別就在於它不再要求使用者與網站之間的互動
依 iThome 於去年 10/30 說明的這篇文章,目前的 reCAPTCHA 已經出到了 v3,而 v3 和 v2 最大的差別就在於它不再要求使用者與網站之間的互動
- Dec 09 Sun 2018 20:28
-
【程式】Wordpress 更新網址/網域名稱的流程
假設您的 Wordpress 原來網址是 www.abc.com.tw 因為某種原因要換成 www.def.com.tw,要怎麼做呢 ?
步驟其實不會太麻煩,不過請先記得先備份您的資料庫 ! 先備份您的資料庫 ! 先備份您的資料庫 !
步驟其實不會太麻煩,不過請先記得先備份您的資料庫 ! 先備份您的資料庫 ! 先備份您的資料庫 !
- Feb 21 Sun 2016 16:49
-
【程式】在 PHP 上防止 SQL Injection & XSS 攻擊
以下防止 SQL Injection 的程式是參考 AppleBOY 這篇文章 : PHP+MySQL 環境下 SQL Injection 攻防戰
//處理 SQL Injection
if( is_array($_POST) && !get_magic_quotes_gpc())
{
while( list($k, $v) = each($_POST) )
{
$$k = checkhtml(mysql_real_escape_string(trim($v)));
}
@reset($_POST);
}
//處理 SQL Injection
if( is_array($_POST) && !get_magic_quotes_gpc())
{
while( list($k, $v) = each($_POST) )
{
$$k = checkhtml(mysql_real_escape_string(trim($v)));
}
@reset($_POST);
}
- Apr 10 Fri 2015 12:10
-
【程式】解決 PHPMailer 無法透過 Gmail 發信的問題
去年 2014 年曾用 PHPMailer 寫了一支程式讓它透過 Gmail 去發送,這二天又要拿出來用時發現怎麼一直都寄不出去
開啟 Debug Log 發現 PHPMailer 吐了一堆訊息,裡含有這個網址 https://support.google.com/mail/answer/78754
看了裡面的說明原則上注意三件事即可
開啟 Debug Log 發現 PHPMailer 吐了一堆訊息,裡含有這個網址 https://support.google.com/mail/answer/78754
看了裡面的說明原則上注意三件事即可
- Sep 16 Tue 2014 17:02
-
【程式】解決 PHPMailer 亂碼的問題
今天下載了 PHPMailer,版本是 5.2.8
我的環境都是使用 UTF-8,如果想要將信寄出去都也是走 UTF-8 編碼的話,要做下列二件事
1. 在 class.phpmailer.php 裡設成
我的環境都是使用 UTF-8,如果想要將信寄出去都也是走 UTF-8 編碼的話,要做下列二件事
1. 在 class.phpmailer.php 裡設成
- Dec 21 Fri 2012 14:05
-
【程式】一個利用 Null Byte 漏洞的資安攻擊事件

這可能是一篇落落長的故事,但我還是要盡力記錄下來 ~ 因為是一個很寶貴的資安事件與經驗
話說我們有一台主機,它的功能是一台委外廠商對外營運的 Web 主機,非常單純 ~ 防火牆就是只有開放 80 Port 可存取
前陣子有一天業管單位說怎麼外面 Internet 的使用者都連不太進來,網路感覺很頓,第一時間我把問題反應給管理 VM 環境的同仁,請他協助查看是否在 VM 環境有異常
而管理 VM 主機的同仁說可能是網路的問題,於是再把問題轉給管理網路的人查看
- Sep 02 Fri 2011 13:53
-
【程式】PHP 檔案上傳
瀏覽檔案的頁面
<form id="form1" name="form1" method="post" action="upload.php" enctype="multipart/form-data">
<input name="file1" type="file" id="file1" />
<input type="submit" name="button" id="button" value="上傳檔案" />
</form>
<form id="form1" name="form1" method="post" action="upload.php" enctype="multipart/form-data">
<input name="file1" type="file" id="file1" />
<input type="submit" name="button" id="button" value="上傳檔案" />
</form>
- Aug 01 Mon 2011 12:27
-
【程式】用 PHP 進行 SSHA 驗證
剛研究 PHP 跟 OpenLDAP 驗證的東西,建議是用 MD5 or SSHA 加密比較安全,這篇是在說明怎麼用 SSHA 來驗證
howforge.com - How to create and verify SSHA hash using PHP
There are so many hash. SHA1 is one of them which is widely used in recent years even though it is not safe to use right now. By the way, it is still the default hash function for storing password in LDAP especially OpenLDAP. In order to develop a website with LDAP authentication manually against POSIX account, SSHA hash function or SHA1 is the easiest solution.
function ssha_encode($text) {
for ($i=1;$i<=10;$i++) {
$salt .= substr('0123456789abcdef',rand(0,15),1);
}
$hash = "{SSHA}".base64_encode(pack("H*",sha1($text.$salt)).$salt);
return $hash;
}
function ssha_check($text,$hash) {
$ohash = base64_decode(substr($hash,6));
$osalt = substr($ohash,20);
$ohash = substr($ohash,0,20);
$nhash = pack("H*",sha1($text.$osalt));
return $ohash == $nhash;
}
$password = "test";
$hash = ssha_encode($password);
print "$hash\n";
print var_export(ssha_check($password,$hash),true);
howforge.com - How to create and verify SSHA hash using PHP
There are so many hash. SHA1 is one of them which is widely used in recent years even though it is not safe to use right now. By the way, it is still the default hash function for storing password in LDAP especially OpenLDAP. In order to develop a website with LDAP authentication manually against POSIX account, SSHA hash function or SHA1 is the easiest solution.
function ssha_encode($text) {
for ($i=1;$i<=10;$i++) {
$salt .= substr('0123456789abcdef',rand(0,15),1);
}
$hash = "{SSHA}".base64_encode(pack("H*",sha1($text.$salt)).$salt);
return $hash;
}
function ssha_check($text,$hash) {
$ohash = base64_decode(substr($hash,6));
$osalt = substr($ohash,20);
$ohash = substr($ohash,0,20);
$nhash = pack("H*",sha1($text.$osalt));
return $ohash == $nhash;
}
$password = "test";
$hash = ssha_encode($password);
print "$hash\n";
print var_export(ssha_check($password,$hash),true);
- Aug 01 Mon 2011 12:20
-
【程式】用 PHP 新增資料到 LDAP
單純做個筆記
// Connecting to LDAP
$ldaphost = "ldap://IP:389";
$ldapconn = ldap_connect($ldaphost) or die("Could not connect to $ldaphost");
//要新增的資料
$addperson["objectClass"][0] = "top";
$addperson["objectClass"][1] = "inetOrgPerson";
$addperson["objectClass"][2] = "person";
$addperson["objectClass"][3] = "qmailUser";
$addperson["mailMessageStore"] = "/var/qmail/maildirs/bojack";
$addperson["qmailDotMode"] = "both";
$addperson["sn"] = "Bojack";
//加密方式有 MD5 or SHA
//$newpassword = "{MD5}" . base64_encode(pack("H*",md5($password)));
$newpassword = "{SHA}".base64_encode(pack("H*",sha1($password)));
$addperson["userPassword"] = $newpassword;
$addperson["mailQuotaSize"] = "104857600";
$addperson["mail"] = "bojack@bojack.com";
$addperson["deliveryMode"] = "nolocal";
$addperson["uid"] = "bojack";
$addperson["accountStatus"] = "active";
$addperson["mailHost"] = "smtp.bojack.com";
$addperson["cn"] = "bojack";
$addperson["deliveryProgramPath"] = "/usr/bin/maildrop -w 95";
$addperson["qmailGID"] = "600";
$addperson["qmailUID"] = "600";
$addperson["mailReplyText"] = " ";
if($ldapconn) {
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_bind($ldapconn,"cn=Manager,dc=bojack,dc=com","Password");
ldap_add($ldapconn,"uid=bojack,ou=user,dc=bojack,dc=com",$addperson);
}
ldap_close($ldapconn);
// Connecting to LDAP
$ldaphost = "ldap://IP:389";
$ldapconn = ldap_connect($ldaphost) or die("Could not connect to $ldaphost");
//要新增的資料
$addperson["objectClass"][0] = "top";
$addperson["objectClass"][1] = "inetOrgPerson";
$addperson["objectClass"][2] = "person";
$addperson["objectClass"][3] = "qmailUser";
$addperson["mailMessageStore"] = "/var/qmail/maildirs/bojack";
$addperson["qmailDotMode"] = "both";
$addperson["sn"] = "Bojack";
//加密方式有 MD5 or SHA
//$newpassword = "{MD5}" . base64_encode(pack("H*",md5($password)));
$newpassword = "{SHA}".base64_encode(pack("H*",sha1($password)));
$addperson["userPassword"] = $newpassword;
$addperson["mailQuotaSize"] = "104857600";
$addperson["mail"] = "bojack@bojack.com";
$addperson["deliveryMode"] = "nolocal";
$addperson["uid"] = "bojack";
$addperson["accountStatus"] = "active";
$addperson["mailHost"] = "smtp.bojack.com";
$addperson["cn"] = "bojack";
$addperson["deliveryProgramPath"] = "/usr/bin/maildrop -w 95";
$addperson["qmailGID"] = "600";
$addperson["qmailUID"] = "600";
$addperson["mailReplyText"] = " ";
if($ldapconn) {
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_bind($ldapconn,"cn=Manager,dc=bojack,dc=com","Password");
ldap_add($ldapconn,"uid=bojack,ou=user,dc=bojack,dc=com",$addperson);
}
ldap_close($ldapconn);
- Jan 07 Fri 2011 16:55
-
【程式】PHP - short_open_tag
- Jan 03 Mon 2011 23:32
-
【程式】PHP 5.3 跟 phpMyAdmin 幾個問題
今天裝了一台 PHP 5.3.4 + MySQL 4.1.27 ... 拿了一個很舊的 phpMyAdmin 2.10.1 來 run
一開首頁就會噴出一堆錯誤
Deprecated: Function eregi() is deprecated in /path/to/phpMyadmin/libraries/select_lang.lib.php on line 143
if (($envType == 1 && eregi('^(' . $expr . ')(;q=[0-9]\\.[0-9])?$', $str))
|| ($envType == 2 && eregi('(\(|\[|;[[:space:]])(' . $expr . ')(;|\]|\))', $str))) {
一開首頁就會噴出一堆錯誤
Deprecated: Function eregi() is deprecated in /path/to/phpMyadmin/libraries/select_lang.lib.php on line 143
if (($envType == 1 && eregi('^(' . $expr . ')(;q=[0-9]\\.[0-9])?$', $str))
|| ($envType == 2 && eregi('(\(|\[|;[[:space:]])(' . $expr . ')(;|\]|\))', $str))) {