กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
782 21
URL.หัวข้อ /
URL
อยากให้อาจารย์ช่วยเพิ่มเติม Code ให้หน่อยค่ะ
ดังตัวอย่าง Code ข้างนี้ ถ้าเราอยากจะเพิ่มการเปิด frmMainMenu ทั้งหมดมี cmd ทั้งหมด 3 cmd แต่ว่า ถ้าหากเราพิมพ์ usersname ชื่อ "AFC" or "COM" ไม่สามารถ คลิ๊ก cmd2 และ cmd3 ได้ แต่ถ้า usersname โดยทั่วไปสามารถคลิ๊กได้หมด รบกวนหน่อยนะค่ะ
Function DoWhat(intI As Integer)
Dim mydb As Recordset
Dim db As Database
Dim stDocName As String
Dim stLinkCriteria As String
Set db = CurrentDb
stDocName = "frmMainMenu"
Set mydb = db.OpenRecordset("SELECT * FROM Security WHERE Password= '" & txtPassword & "' and UserName= '" & txtUserName & "'")
If IsNull(Me![txtUserName]) Or IsNull(Me![txtPassword]) Then
MsgBox "You Have to Write Your Name and Password First", vbInformation, "Note"
DoCmd.GoToControl "txtUserName"
Exit Function
ElseIf mydb.EOF Then
MsgBox "Either User Name or Password is Not Valid... " & vbCrLf & "Try Again", vbInformation, "Note"
DoCmd.GoToControl "txtUsername"
Exit Function
Else
If intI = 1 Then
DoCmd.OpenForm stDocName, , , stLinkCriteria
Else
DoCmd.OpenForm "frmChangePassword", , , , , , Me.txtUserName
End If
DoCmd.Close acForm, "frmLogIn"
End If
End Function
Function DoWhat(intI As Integer)
Dim mydb As Recordset
Dim db As Database
Dim stDocName As String
Dim stLinkCriteria As String
Set db = CurrentDb
stDocName = "frmMainMenu"
Set mydb = db.OpenRecordset("SELECT * FROM Security WHERE Password= '" & txtPassword & "' and UserName= '" & txtUserName & "'")
If IsNull(Me![txtUserName]) Or IsNull(Me![txtPassword]) Then
MsgBox "You Have to Write Your Name and Password First", vbInformation, "Note"
DoCmd.GoToControl "txtUserName"
Exit Function
ElseIf mydb.EOF Then
MsgBox "Either User Name or Password is Not Valid... " & vbCrLf & "Try Again", vbInformation, "Note"
DoCmd.GoToControl "txtUsername"
Exit Function
Else
If intI = 1 Then
DoCmd.OpenForm stDocName, , , stLinkCriteria
Else
DoCmd.OpenForm "frmChangePassword", , , , , , Me.txtUserName
End If
DoCmd.Close acForm, "frmLogIn"
End If
End Function
21 Reply in this Topic. Dispaly 2 pages and you are on page number 1
1 @R01669
รู้สึกว่า ผมมีตัวอย่างแบบนี้อยู่นะ รอซักครู่ ขอเวลาไปค้นหน่อย
2 @R01671
ก่อนอื่นต้องขออนุญาต อ. สุภาพ และ เจ้าของหนังสือที่หยิบยืมตัวอย่างมา
ให้ลอง Login ใน
Security Level 1
1. User Name: admin
Password : admin
2. User Name: user
Password : user
สังเกตุควาแตกต่าง
Security Level 2
Table "Tbl_User" ที่เก็บ User Name และ Password จะมองไม่เห็นเพราะถูก Hide ไว้ต้อง ไปที่ Tools --> View --> ติ๊ก Hiden Objects
Security Level 3
ฟอร์มต่างๆ จะไม่ทำงาน หากไม่ Login ผ่านเมนูเพราะมีการอ่านค่าตัวแปรก่อนฟอร์มจะทำงาน ซึ่งเหตุการณ์นี้จะเกิดขึ้นเมื่อ Bypass Startup โดยการกด "Shift" Key
Security Level 4
แต่สามารถแก้ได้โดยการยกเลิก Bypass Shift Key ให้ค้นหาในหัวข้อเก่าๆ ดู เกี่ยวกับ Bypass Shift Key ตัวอย่างที่ยาวๆ ตอนต้นๆ รู้สึกไม่เวิร์ค แต่ตัวอย่างที่อ. สุภาพ ให้ตอนท้ายสุดยอดหาที่ใดเทียมไม่ สามารถ ยกเลิก Shift Key ทั้ง *.mdb และ *.mde (หามาประมาณ 7-8 ปีครับท่าน)
Security Level 5
จากที่ เรา Hide Table ที่เก็บ User Name และ Password แต่ยังไม่ปลอดภัยพอเพราะหากเปิดดูก็จะเห็นทั้งหมด ให้ค้นมีตัวอย่างในเว็บบอร์ด ไม่แน่ใจว่าไว้ชื่ออะไร ประมาณว่า project.mdb (แต่ระวังนะครับ ไว้นี้มี 2 ตัวอย่างที่ชื่อซ้ำกันซึ่งมีตัวอย่างหนึ่งผมพยายาม D/L มาใช้แต่ไฟล์เปิดไม่ได้แต่ อ. สุภาพ บอกว่าใช้ได้ สงสัย Access ผมคงต๋องไปแล้วยังไม่มีเวลาลงโปรแกรมใหม่เลย) ในตัวอย่างนี้จะมีการสอนเรื่อง Menu Bar ที่สัมพันธ์กับ User Name คล้ายกับคำถามนี้ที่ถามเกี่ยวกับปุ่ม ให้สังเกตุเวลา Login ตามคำแนะนำแล้วจะมีการแสดงชื่อผู้ใช้งานว่า "Badman"
ให้ศึกษาเพิ่มเกี่ยวกับการเอา password ไปเข้ารหัสทำให้อ่านไม่รู้เรื่อง
ที่อธิบายมานี้อยากให้ทุกคนที่เป็นแฟนพันธ์แท้ของ อ. สุภาพแทุกท่านแชร์ประสบการณ์ที่ตัวท่านมีให้คนอื่นได้รู้ในส่วนที่ท่านได้รู้ แต่คนอื่นไม่รู้ ดังเช่น อ. สุภาพท่านสอนทุกคนที่เข้ามาขอความช่วยเหลือ
ขอยกย่องความดีและน้ำใจอันประเสริฐยิ่งของท่านอาจารย์ มา ณ. ที่นี้ครับ
ขอบคุณครับ
หลักการทำงานของโปรแกรมมีดังนี้
3 @R01673
กลับมาแล้วครับ ตัวอย่างที่ผมพูดถึงใน Security Level 5 (ผมได้เปลี่ยชื่อไฟล์ใหม่เพื่อให้จำง่ายครับ)
4 @R01674
กลับมาแล้วครับ ตัวอย่างที่ผมพูดถึงในหัวข้อ 4
5 @R01675
เปิดไม่ได้ค่ะ ไมทราบว่าทำไม ตอนนี้ใช้ Access2K อยู่ค่ะ
6 @R01676
ไฟล์ไหนครับที่เปิดไม่ได้ผมจะได้ส่งไปให้ใหม่
7 @R01677
ทั้งหมด 3 ตัวอย่างเลยค่ะ
8 @R01679
เนื่องจาก Webboard ให้ส่งไฟล์ได้ไม่เกิน 300k ให้ติดต่อผมที่ support@mpgthailand.com เลยครับ
9 @R01680
รบกวนหน่อยนะค่ะ thitimaporns@siemens.co.th
10 @R01852
กลับมาแก้ข้อผิดพลาดครับ
สำหรับไฟล์แสดงหลักการทำงานของโปรแกรม ไฟล์ประกอบ 801_1_Login97.mdb ซึ่งใช้ไม่ได้ครับ
11 @R01853
โทษทีไฟล์เป็น Access 2000 ครับ
12 @R01854
Security Level 2
Table "Tbl_User" ที่เก็บ User Name และ Password จะมองไม่เห็นเพราะถูก Hide ไว้ต้อง ไปที่ Tools --> View --> ติ๊ก Hiden Objects
Security Level 3
ฟอร์มต่างๆ จะไม่ทำงาน หากไม่ Login ผ่านเมนูเพราะมีการอ่านค่าตัวแปรก่อนฟอร์มจะทำงาน ซึ่งเหตุการณ์นี้จะเกิดขึ้นเมื่อ Bypass Startup โดยการกด "Shift" Key อย่าลืมว่า User บางคนก็เป็นมวยเหมือนกันหรือไม่ก็ มีคนเป็นเหมือนกัน หากเขา กด Shift เขาก็จะเห็น DataBase ,Code และ Form ต่างๆ ที่เราเขียนเอาไว้ แล้ว.......
13 @R01855
Level 4
จากปัญหาที่ User สามารถ Bypass Startup Form โดยการกด Shift Key ตอนเปิดโปรแกรมได้ เราก็ยกเลิก Bypass Shift Key ดักไว้ก่อนโดยไฟล์ SetBYpassKey2k.mdb
ให้ทดสอบการการกด Shift Key ตอนเปิดโปรแกรม เทียบกับตัวอย่าง Level 2-3
ซึ่งสามารถ Lock และ Unlock ได้ในตัวโปรแกรมเดียวกัน และสามารถตั้งได้ทั้งไฟล์ .mdb และ .mde
ขอบพระคุณ อ. สุภาพที่ให้ตัวอย่างมาครับ
14 @R01856
Level 5
สมมุติเหตุการณ์ว่า ถ้าเขาผู้นั้นมีฟังค์ชั่น Unlock Bypass Shift Key เหมือนกับเราล่ะ เขาก็จะเห็นฐานข้อมูลขอเราได้อีก
ดังนั้นเราก็ต้องมีการเอา รหัสที่เก็บไปใน Table Password ไปเข้ารหัสให้ไม่สามารถอ่านได้หาก Hack ดู
ผมเคย D/L ตัวอย่างนี้มาจาก Web อ. สุภาพครับ ซึ่งตัวอย่างนี้มีบางสิ่งบางอย่างซ่อนอยู่มากมายทีเดียวให้ศึกษาและปรับใช้เอานะครับ บอกได้คำเดียวว่า สุดยอดครับท่าน
15 @R01857
Level 6
หากต้องการที่จะป้องกันขึ้นมอีกขั้นก็กำหนด Password Database แต่ควรทำแบบ Back End และ Front End หาอ่านได้ใน Web อ. สุภาพ (อันนี้บอกไม่ได้จริงๆ)
แต่ขอบอกไว้ก่อนว่า Password DataBase นั้นป้องกันได้แค่ระดับหนึ่งเท่านั้น เพราะมีโปรแกรมแกะ Password อย่าคิดว่าฐานข้อมูลท่านปลอดภัย
16 @R01858
Level 7
ป้องกันการ Copy โปรแกรมหรือใช้โปรแกรมโดยไม่ได้รับอนุญาต คุณอาจเขียนโปรแกรมอ่าน S/N ล็อกไว้อีกชั้นหนึ่ง
17 @R01859
Level 8
เมื่อทุกอย่างเรียบร้อยสมบูรณ์แล้วก็ Complier เป็น .mde เมื่อ Complier แล้ว คนที่พยายาม Hack นั้น จะไม่สามารถเข้าไปยุ่งกับ Form , Report , Macro, Module แต่ยังเห็น Table ครับ
แต่หากทำตามที่ผมแนะนำมาตั้งแต่ต้นก็กั้นได้มากแล้วละครับ
โดยไปที่ Tools--> Data Base Utility --> Make Mde File
18 @R01860
Level 9
อันนี้ผมได้มาจาก อ. BADMan คือการที่เราเอาไฟล์ .mde ที่ได้จากการ Complier Rename เป็น .mdb เพื่อจะหลอกให้เหล่าผู้ที่จะ Hack โปรแกรมของท่านหลงทางไปพักใหญ่ละครับ
19 @R01863
ขอยกย่องในความตั้งใจจริงที่จะแลกเปลี่ยนประสบการณ์ที่มีคุณค่าให้เพื่อนๆ ครับ
ขอปรบมือให้จากใจจริงของผม
20 @R01876
จริงๆ แล้วผมก็ไม่ได้เป็นอะไรมากมายเพียงแต่เห็นตัวอย่างใน Web อ. สุภาพ เลยจับแพนะชนแกะนะครับ
Time: 0.1264s