想給phpmyadmin加一個驗證碼但找不到驗證的地方,可否告知一下

來源:互聯網
上載者:User
想給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給登出掉了。目前驗證碼是可以正常顯示,但使用不了。

誰弄好了,說下。快整死我了

雲裡霧裡的。
嗷嗷。。。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.