台灣最大程式設計社群網站
線上人數
1299
 
會員總數:246276
討論主題:189811
歡迎您免費加入會員
討論區列表 >> PHP >> 關於 自行開發多用戶 程式,限制用戶數
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
關於 自行開發多用戶 程式,限制用戶數
價值 : 30 QP  點閱數:1087 回應數:7
樓主

chjiang
初學者
78 84
1328 93
發送站內信

各位前輩們大家好~
有一個問題想問一下前輩們~

我開發好一個系統(多用戶)
在資料庫會有一個資料表,記錄用戶資料
如果在資料庫新增一筆,就會新增一個用戶

有辦法防止使用者自行新增用戶嗎?

我的目的是,只開放n個用戶給 end user 使用
在什麼方法下,可以限制 end user 自行新增用戶

(程式、資料庫,都放在 End user 上)


小弟目前的想法~
將用戶那個資料表 加一個欄位(驗證碼),例:用戶資料+自定字串 ~> 產生加密後字串
然後,在程式讀用戶這張表,必須是驗證碼合法
再配合將php程式加密(加密方法,還在研究中...)

不知,前輩們是否曾有過這樣子的設計想法

再麻煩前輩們指導!!

本篇文章發表於2011-11-14 15:14
1樓
不錯的參考

ahsac
檢舉此回應
其實你只要能夠將php原始碼加密就夠了
管他資料庫裡面有幾個user, 你的php只肯讀前五筆, 他又能如何?
本篇文章回覆於2011-11-14 15:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
先了解一些事情再來回你這個答案。

1.該程式是否客戶、用戶能直接接觸到的。還是只放在你們公司的伺服器上。
2.是否公司有個中央控管處理。

一般來說,我想你會有這些問題因該就是程式碼是直接給客戶的。但客戶可能對程式有了解,原本有限制的情況下給你破解了。
所以你想做限制。

認真來說,如果程式碼在客戶手中,說真的很難去做任何的防護。最多也不過只能利用加密的方式來處理。
但實體上就算是加密,也不過是針對客戶的破解困難度,這還得看你加密的功力。還是會被破解掉。

所以一般最安全的就是有個中央控制器。也就是可以設計成,當客戶要新增用戶時,需先經由你公司的伺服器來回傳授權碼或是驗証碼。
才可以新增用戶。這是最安全的方式。

如果無法有個中央控管的話。就如#1所說的,就只將PHP做加密。然後再相關的資料庫讀取給它帶入LIMIT的範圍。如只限5個用戶。那就加上limit 5。
這樣在PHP因為加密的關係無法修改。他想從資料庫修改增加也無法的情況下。也就無法處理。

當然你說的加上驗証也是一招。不過其解密程式你一定也得寫在程式堙C
只要人家可以看到你的程式的情況下,你要怎麼加密也會被解開的。所以沒有那個必要再去做這動作。

我個人都是寫個小程式來當加密解密的功能,該小程式是放在非客戶的機器上。 再客戶再處理需要驗証的動作時,都需透過我這支小程式回傳驗証碼。
一般是寫成AJAX的方式來處理。也有少部份是寫成API。看情況來防制。
本篇文章回覆於2011-11-14 16:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

chjiang
檢舉此回應
To ahsac & 浩瀚星空 :
謝謝您們的指導!!~了解!!


To 浩瀚星空:
不好意思,再請問一下~
你回文中提到

『我個人都是寫個小程式來當加密解密的功能,該小程式是放在非客戶的機器上。 再客戶再處理需要驗証的動作時,都需透過我這支小程式回傳驗証碼。
一般是寫成AJAX的方式來處理。也有少部份是寫成API。看情況來防制。 』
這個"前提"是程式碼是在無法檢視/修改(加密)的情況下,是嗎?
因為如果程式碼可以被檢視修改,是不是也一樣可以 skip 掉驗證的步驟


非常感謝兩位的指導!!~
本篇文章回覆於2011-11-14 16:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

Solty
檢舉此回應
如果你的程式全部都是客戶可以掌握的(程式碼可以被檢視修改)
就一定可以skip掉驗證的步驟
本篇文章回覆於2011-11-16 17:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
關鍵項目全部寫成dll...(用delphi, vb....來寫)

(等於是必須要有dll, 才能正常使用系統)

這種情況下, 才有機會進行限制...
本篇文章回覆於2011-11-16 20:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
不錯的參考

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
是的~~看樣子你有了解到了。

所以這個驗証碼必須設計成不能單單只是驗証而已。因為一定會被SKIP。
所以如何要不被跳過,這就看個人的功力了。

一般來講,我驗証的東西會寫在資料庫上。另外會附加上某一支重要檔案的MD5檢查。
當然這支檔案的MD5碼不是單單的檔案的MD5碼。而是透過遠端一些他們看不到的獨立編碼處理。
然後幾乎在每一支程式都加上這個驗証碼的檢查。
當然這樣也是無法防止他們去修改,但至少~~他們會改的比較累。

安全點最好加上一些回傳的機制。也就是當客戶有在搞鬼搞怪時,你可以馬上知道並做處理。

其實防護不管如何防護,還是一定有人會破解的。所以沒有一套很完美的防護方式。
除非就是像小羊說的用VB或是delphi等程式開發的工具。雖然那也是可以破解,但至少破解的困難度比較高而已。
本篇文章回覆於2011-11-17 10:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

chjiang
檢舉此回應
非常謝謝各位前輩們的指導!!~

謝謝大家!!
本篇文章回覆於2011-11-17 10:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.