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 指令時 還是置換了 \' 成 ' , 這樣不是很危險嗎?
不知道有沒有大大可以解答一下~ 謝謝 ~
[問題]請問一個論壇登入時的程式碼問題
版主: 版主管理群
版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
[問題]請問一個論壇登入時的程式碼問題
----------------------------------
●架設主機作業系統: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
----------------------------------
●架設主機作業系統: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
----------------------------------
2.0.19 的部分是\r
~Mac
代碼: 選擇全部
$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;
}
