[問題]請問一個論壇登入時的程式碼問題

phpBB Installation & Usage Support
phpBB 2 安裝於各類型作業平台之問題討論;外掛問題,請到相關版面依發問格式發表!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
主題已鎖定
頭像
geowichi
星球普通子民
星球普通子民
文章: 2
註冊時間: 2004-05-01 23:41

[問題]請問一個論壇登入時的程式碼問題

文章 geowichi »

if( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) || isset($HTTP_POST_VARS['logout']) || isset($HTTP_GET_VARS['logout']) )
{
if( ( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) ) && !$userdata['session_logged_in'] )
{
$username = isset($HTTP_POST_VARS['username']) ? trim(htmlspecialchars($HTTP_POST_VARS['username'])) : '';
$username = substr(str_replace("\\\'", "'", $username), 0, 25);
$username = str_replace("'", "\\\'", $username);
$password = isset($HTTP_POST_VARS['password']) ? $HTTP_POST_VARS['password'] : '';

$sql = "SELECT user_id, username, user_password, user_active, user_level
FROM " . USERS_TABLE . "
WHERE username = '" . str_replace("\\\'", "''", $username) . "'";

.....

最近在研究論壇的程式碼,其中在login.php中一開始判斷使用者輸入的username, 不是為了要防止惡意輸入所以利用 addslashes() 將 ' 置換成 \'
可是為何上述程式碼又一而在的 把已經置換的 \' 再置換為 '
最後串sql 指令時 還是置換了 \' 成 ' , 這樣不是很危險嗎?

不知道有沒有大大可以解答一下~ 謝謝 ~
----------------------------------
●架設主機作業系統:Win200 pro
●上網方式:Hinet ADSL 2m/128k
●Apache Web Server Version 1.3.29
●PHP Script Language Version 4.3.6
●MySQL Database Version 4.0.18
●phpMyAdmin Database Manager Version 2.5.6
●phpBB2 版本: 2.0.8
----------------------------------
Mac
百戰天龍馬蓋先
百戰天龍馬蓋先
文章: 2590
註冊時間: 2003-02-02 02:28
來自: MacphpBBMOD
聯繫:

文章 Mac »

2.0.19 的部分是\r

代碼: 選擇全部

		$username = isset($HTTP_POST_VARS['username']) ? phpbb_clean_username($HTTP_POST_VARS['username']) : '';
		$password = isset($HTTP_POST_VARS['password']) ? $HTTP_POST_VARS['password'] : '';\r

		$sql = "SELECT user_id, username, user_password, user_active, user_level, user_login_tries, user_last_login_try
			FROM " . USERS_TABLE . "
			WHERE username = '" . str_replace("\\\'", "''", $username) . "'";

代碼: 選擇全部

// added at phpBB 2.0.11 to properly format the username
function phpbb_clean_username($username)
{
	$username = substr(htmlspecialchars(str_replace("\'", "'", trim($username))), 0, 25);
	$username = phpbb_rtrim($username, "\\\");
	$username = str_replace("'", "\'", $username);

	return $username;
}
~Mac
+ 關於 phpBB 使用問題請在版面發問,私人訊息提供其他不相干或是隱私的事情聯絡之用。

phpBB 官網 | 竹貓星球 | MacphpBBMOD | 我的服務
主題已鎖定

回到「phpBB 2 安裝與使用」