想給phpmyadmin加一個驗證碼??但找不到驗證的地方,可否告知一下。
畢竟沒有驗證碼很容易被社工的。同時我也想JS加密密碼,然後再用PHP解密。
知道的告知一下。謝謝。
回複討論(解決方案)
設定一下,讓它登入後才能訪問還不可以嗎
設定一下,讓它登入後才能訪問還不可以嗎
可以說要仔細一點嗎??不是很明白。
我是想加一個驗證碼或者對密碼進行加密也行。
呵呵,那你就得去改改phpmyadmin的源碼了。
它內建的就有登入功能
呵呵,那你就得去改改phpmyadmin的源碼了。
它內建的就有登入功能
這個我知道呀,但它驗證使用者各與密碼的地方在那裡,我找了好長時間,就是找不到。
是使用者名稱與密碼
來個高手吧,到底在那裡修改呢???
登入表單在 libraries/auth/cookie.auth.lib.php 240 行附近
有關使用者名稱的操作在該檔案450行附近
if (! empty($_REQUEST['pma_username'])) { // The user just logged in $GLOBALS['PHP_AUTH_USER'] = $_REQUEST['pma_username']; $GLOBALS['PHP_AUTH_PW'] = empty($_REQUEST['pma_password']) ? '' : $_REQUEST['pma_password']; if ($GLOBALS['cfg']['AllowArbitraryServer'] && isset($_REQUEST['pma_servername'])) { $GLOBALS['pma_auth_server'] = $_REQUEST['pma_servername']; } return true; }
phpmysqladmin 本身不需要驗證使用者名稱和口令的真偽
因為戶名和口令是給 mysql 用的,錯了就串連不上資料庫
@xuzuning 版主
phpmyadmin不串連mysql怎樣操作資料庫裡的東西呢?我覺得納悶呢。又在那裡將這些資訊傳給mysql呢??
@xuzuning 版主
網上很多都講怎樣用phpMyAdmin串連mysql,但並沒有說明如何修改phpMyAdmin加驗證碼以加強安全性。
不然,有人不停地掃,一般情況下,一個小菜鳥,兩三天,估計也掃出來了。
phpmyadmin不串連mysql怎樣操作資料庫裡的東西呢?我覺得納悶呢。又在那裡將這些資訊傳給mysql呢?? 你是誤解了我的意思了
phpmyadmin 本身是不需要登陸的
需要輸入的是訪問資料庫的使用者名稱和口令
因此 phpmyadmin 沒有提供驗證,也無法判斷登入 mysql 的使用者名稱和口令是否合法
如果你連你的 phpmyadmin 的入口都公開了出來,那還擔心人家“掃”幹什嗎?
引用 8 樓 bluewjzhhr 的回複:phpmyadmin不串連mysql怎樣操作資料庫裡的東西呢?我覺得納悶呢。又在那裡將這些資訊傳給mysql呢??你是誤解了我的意思了
phpmyadmin 本身是不需要登陸的
需要輸入的是訪問資料庫的使用者名稱和口令
因此 phpmyadmin 沒有提供驗證,也無法判斷登入 mysql 的使用者名稱和口令是否合法
如果你連……
版主,不是我主動公開的,也許是駭客通過某種方法探測到的。
還有呀:
if (! empty($_REQUEST['pma_username'])) { // The user just logged in $GLOBALS['PHP_AUTH_USER'] = $_REQUEST['pma_username']; $GLOBALS['PHP_AUTH_PW'] = empty($_REQUEST['pma_password']) ? '' : $_REQUEST['pma_password']; if ($GLOBALS['cfg']['AllowArbitraryServer'] && isset($_REQUEST['pma_servername'])) { $GLOBALS['pma_auth_server'] = $_REQUEST['pma_servername']; } return true; }
我怎麼看,都覺得這個不是驗證使用者名稱登入的地方呀??是不是在其它地方??
你把 phpmyadmin 的入口甚至目錄都改個名,不就可以免除擋牆的“攻擊”了嗎
我沒說那是使用者驗證吧?我只是說與登入名稱相關,是吧?
況且,我再三的說了,phpmyadmin是不需要登入的,使用者登入只是為了串連mysql而設的
這個我理解,知道使用者登入是為了串連mysql設計的,你知道在那裡進行:
"select * from user where user='".$user."' and password='".$password."'";
的嗎???
這個我理解,知道使用者登入是為了串連mysql設計的,你知道在那裡進行:
"select * from user where user='".$user."' and password='".$password."'";
的嗎???
我想版主的意思是 phpmyadmin只是提供介面傳入mysql使用者名稱和密碼進行串連的。所以應該找具體在哪裡執行mysql_connect(xx,xx,xx),然後對串連的狀態進行判斷。至於你說的執行這句sql,應該是在mysql資料庫內部執行的了;或許mysql自身有個表是用來放使用者資訊的。
引用 13 樓 bluewjzhhr 的回複:這個我理解,知道使用者登入是為了串連mysql設計的,你知道在那裡進行:
"select * from user where user='".$user."' and password='".$password."'";
的嗎???
我想版主的意思是 phpmyadmin只是提供介面傳入mysql使用者名稱和密碼……
我知道版主的意思,是我的表述不清楚。
找了三個晚上,依然無結果。想給phpMyAdmin加一個驗證碼,雜就這麼難呢?????
本帖最後由 xuzuning 於 2012-12-20 16:46:41 編輯
登入表單在 libraries/auth/cookie.auth.lib.php 240 行附近
有關使用者名稱的操作在該檔案450行附近PHP code?123456789 if (! empty($_REQUEST['pma_username'])) {……
引用 7 樓 xuzuning 的回複:本帖最後由 xuzuning 於 2012-12-20 16:46:41 編輯
登入表單在 libraries/auth/cookie.auth.lib.php 240 行附近
有關使用者名稱的操作在該檔案450行附近PHP code?123456789 if (! empty($_REQUEST['p……
發現mysql的加密方式為sha1(unhex(sha1('xxx')))這樣的,我直接在JS前端加密後,再傳回去,然後直接的密碼對比就行了。這樣不更安全些????????
不相信這樣的密碼,誰破解的了。也不用為其它的明文傳輸密碼問題而發愁了。
很簡單的問題 提交頁面和顯示頁面都加個東西就可以啊
很簡單的問題 提交頁面和顯示頁面都加個東西就可以啊
關鍵是phpMyAdmin裡驗證密碼的地方在那裡,找不到呀!!!!!!
關鍵是phpMyAdmin裡驗證密碼的地方在那裡,找不到呀!!!!!!
問題是 phpMyAdmin 不驗證密碼,因為密碼是給 mysql 用的,php中無法驗證
要說幾遍才能明白呢?
一般使用 phpMyAdmin 時都將使用者名稱和密碼寫在 config 檔案裡的
使用者名稱或密碼錯了,就連不上 mysql,此時 mysql 會給出相應的錯誤資訊
這和你到銀行取錢是一個道理,櫃員受理你的業務,密碼得由你自己輸,輸錯了他就轉告你錯了
表述不準確,請版主諒解
phpMyAdmin 總得去mysql中找使用者名稱與密碼同時存在的記錄吧,不去mysql中尋找,怎麼知道有此使用者呢?
我想知道phpMyAdmin 是怎樣把使用者名稱與密碼給到mysql的。
找到了:
在common.inc.php裡面大概第945行:
// Connects to the server (validates user's login)
$userlink = PMA_DBI_connect($cfg['Server']['user'], $cfg['Server']['password'], false);
謝謝版主了。
前面我已經說了
$GLOBALS['PHP_AUTH_USER'] = $_REQUEST['pma_username'];
$GLOBALS['PHP_AUTH_PW'] = empty($_REQUEST['pma_password']) ? '' : $_REQUEST['pma_password'];
這就是緩衝傳入的使用者名稱和口令的
當然還有幾處類似的地方
當你串連 mysql 時需要執行 mysql_connect('localhost', $username, $parssword); 這樣是吧?
這個 $username 和 $parssword 不就是傳入的或預置的使用者名稱和口令嗎
這就是 phpmyadmin 讓你輸入的使用者名稱和口令和口令,是用於串連資料庫的
當資料庫還沒有串連時,phpmydamin 如何到 mysql 中去尋找使用者名稱和口令呢?
那麼如果資料庫已經串連上了,驗證這個使用者名稱和口令又有什麼用呢?
當然,串連時 mysql 本身也要去 user 表驗證使用者名稱和口令的,但你是幹預不了的
這和你的應用系統是不一樣的,你的應用系統的使用者名稱和口令的確是要在串連mysql後去表中驗證使用者名稱和口令
估計你把這兩個混淆了
@xuzuning
有個奇怪的事要問下:驗證碼加上了,但驗證碼產生的session或者cookie進不了phpMyAdmin裡面,換句話說:phpMyAdmin應該在某個地方把session給登出掉了。目前驗證碼是可以正常顯示,但使用不了。
誰弄好了,說下。快整死我了
雲裡霧裡的。
嗷嗷。。。