tranthanhan1962 > 22-09-15, 11:47 PM
thucgia > 23-09-15, 12:15 AM
(22-09-15, 11:47 PM)tranthanhan1962 Đã viết: Mình cũng chưa gặp trường hợp này. Bởi vì phần mềm mình viết thường là cho kế toán doanh nghiệp nên người sử dụng đều có máy riêng và máy có pass, ngoài phần mềm còn nhiều thứ khác. Các bạn cũng biết mấy cha kế toán thường hay đỗ thừa nên cho vàng cũng chẳng ai thèm rớ . Hồn ai nấy giữ mà. Nhưng thông qua vụ này (mình nghĩ vụ này chỉ xảy ra trên máy dùng chung thôi) mình cũng có vài suy nghĩ. Nếu chúng ta có 2 table user: một table A là table chính dùng để xử lý đây là table local không liên kết CSDL, table B là table mã hóa dùng để lưu trữ nằm thường trú trên dữ liệu backend. Viết một code mã hóa như a=b, b=c...0=1, 1=2. Và một code phục hồi b trả về a, c trả về b. Mỗi khi load form login thì code dịch phục hồi sẽ dịch từ table B để append vào table A để xử lý phân quyền. Khi đóng database thì code mã hóa sẽ update dữ liệu từ table A sang table B sau đó xóa hết record của table A. Làm như vậy cho dù có import dữ liệu của table B thì cũng không làm gì được vì mật khẩu trên table B đã bị chuyển dịch không đúng với table A.
Thực ra cách này cũng vẫn có lỗ hỏng. Vì khi họ vào được máy của mình, mở form login (lúc này table A đã được biên dịch và append, họ vẫn import được table A. Chính vì vậy windows cho phép tạo nhiều user để bảo mật
Example VBA Code
Public Sub HideTable(strTablename As String)
With CurrentDb
With .TableDefs(strTablename)
.Attributes = .Attributes Or dbHiddenObject
End With
End With
RefreshDatabaseWindow
End Sub
Public Sub UnHideTable(strTablename As String)
With CurrentDb
With .TableDefs(strTablename)
If dbHiddenObject = (.Attributes And dbHiddenObject) Then
.Attributes = .Attributes - dbHiddenObject
End If
End With
End With
RefreshDatabaseWindow
End Sub
tranthanhan1962 > 23-09-15, 12:44 PM
(23-09-15, 12:15 AM)thucgia Đã viết: À nghe anh nói hidden table mình thấy có vẽ khả quan đó, Cái này chắc chống import được đây.
thucgia > 23-09-15, 01:38 PM
(23-09-15, 12:44 PM)tranthanhan1962 Đã viết:(23-09-15, 12:15 AM)thucgia Đã viết: À nghe anh nói hidden table mình thấy có vẽ khả quan đó, Cái này chắc chống import được đây.
Thực ra ổ khóa nào cũng chỉ có thể giữ được với người lương thiện. Nhưng với bọn ác thì khác. Cho dù bạn có ẩn table. nhưng nếu họ thiết đặt tool \ option \ view \ check hidden object. Họ cũng vẫn thấy được table ẩn. Windows còn bị bẻ khó@ cơ mà. Tất nhiên sử dụng nhiều hàng rào cũng có thể làm nản lòng thằng ăn cắp .
maidinhdan > 23-09-15, 05:24 PM
(23-09-15, 12:44 PM)tranthanhan1962 Đã viết: ...... Windows còn bị bẻ khó@ cơ mà. Tất nhiên sử dụng nhiều hàng rào cũng có thể làm nản lòng thằng ăn cắp .
(23-09-15, 01:38 PM)thucgia Đã viết: Các table hidden sẽ không hiện trong danh sách import object dù có set như anh nói (mình kiểm tra thử rồi) cho nên hidden table là khả quan đấy, có lẽ đây là cách chống import từ file access khác.
thucgia > 23-09-15, 08:15 PM
(23-09-15, 05:24 PM)maidinhdan Đã viết:(23-09-15, 12:44 PM)tranthanhan1962 Đã viết: ...... Windows còn bị bẻ khó@ cơ mà. Tất nhiên sử dụng nhiều hàng rào cũng có thể làm nản lòng thằng ăn cắp .
* Em thích nhất câu nói này của anh Ân
(23-09-15, 01:38 PM)thucgia Đã viết: Các table hidden sẽ không hiện trong danh sách import object dù có set như anh nói (mình kiểm tra thử rồi) cho nên hidden table là khả quan đấy, có lẽ đây là cách chống import từ file access khác.
* Bạn post lên thử xem mình Import được không?
paulsteigel > 25-09-15, 04:38 PM
thucgia > 25-09-15, 05:57 PM
(25-09-15, 04:38 PM)paulsteigel Đã viết: Về vụ bảo vệ bảng người dùng, xin giới thiệu một cách tôi đã làm cũng lâu lâu rồi nhưng thấy phức tạp nên bỏ. Xét cho cùng làm mã nguồn mở thì chả phải băn khoăn quá nhiều về việc mất mát.
Phương pháp thực hiện đơn giản và giống như các bác đã nói ở đây, tuy nhiên tiếp cận có modife một tí đó là:
Dùng phương pháp mã hóa 2 chiều với tên người dùng dựa vào chuỗi kết hợp giữa tên và mật khẩu.
+ Viết hàm mã hóa (hàm này có giới thiệu trong một mục Access)
+ Thiết kế form login
- Khi người dùng gõ tên người dùng và mật khẩu, hàm này sẽ lấy chuỗi mã hóa là tên người dùng + mật khẩu hoặc sửa đi tẹo cũng được;
- Hàm này sẽ giải mã thông tin trong bảng người dùng, mật khẩu. Nếu kết quả giải mã đúng với tên người dùng và mật khẩu thì ok.
Nhược điểm của phương pháp này là nếu người dùng quên tên truy cập hoặc mật khẩu thì mọi quyền sẽ không thể khôi phục lại được.
Do đó thông thường chỉ cần dùng tên người dùng làm chuỗi mã hóa với sự kết hợp một số từ khóa cố định nào đó là được.
tranthanhan1962 > 25-09-15, 07:14 PM