Hướng dẫn lưu các lần xác thực của BotDetect ASP.NET 2.0 CAPTCHA
Từ phiên bản 2.0.14, BotDetect ASP.NET CAPTCHA mở rộng tiện ích truy tìm lỗi cho phép lưu lại các lần xác thực Captcha. Trang này mô tả cách sử dụng chức năng này trong dự án của bạn.
- Lưu các lần xác thực BotDetect CAPTCHA vào file văn bản
- Cấu hình lưu lỗi nâng cao và bản quyền log4net
- Định dạng của thông tin xác thực BotDetect CAPTCHA
- Ví dụ lưu xác thực BotDetect CAPTCHA
Lưu các lần xác thực BotDetect CAPTCHA vào file văn bản
Xin lưu ý
Chỉ nên bật chức năng lưu tất cả các lần xác thực của Captcha trong một thời gian giới hạn khi đang tìm lỗi.
Để cung cấp mọi dữ liệu cần thiết dùng để tìm lỗi xác thực, tiện ích này sinh ra khoảng 2kB dữ liệu cho mỗi lần xác thực.
Việc lưu các lần xác thực Captcha không nên bật trong thời gian dài trên máy chủ chính thức, vì nó sẽ sinh ra file rất lớn trong thời gian ngắn.
Hướng dẫn từng bước
- Tìm đến thư mục con Troubleshooting trong thư mục cài đặt của BotDetect ASP.NET CAPTCHA (mặc định là C:\Program Files\Lanapsoft\BotDetect 2.0 CAPTCHA\ASP.NET 2.0\Assembly\Troubleshooting)
- Copy file Lanap.BotDetect.Troubleshooting.dll và file log4net.dll vào thư mục Bin của ứng dụng
Tạo file văn bản tên là debug.txt trong cùng thư mục với file web.config, và chắc chắn rằng tài khoản người dùng IIS có quyền Modify trên đó.
Tài khoản người dùng nào tùy thuộc vào phiên bản của mà bạn đang dùng. Mặc định bạn sẽ dùng:
- IIS 5.0 hoặc 5.1: ASPNET
- IIS 6.0 hoặc 7.0: NETWORK SERVICE
- IIS 7.5: ApplicationPoolIdentity dùng cho AppPool
Bạn có thể thiết lập quyền từ dòng lệnh bằng cách chạy:
cacls debug.txt /G "ASPNET":C /E /C cacls debug.txt /G "NETWORK SERVICE":C /E /C cacls debug.txt /G "IIS AppPool\TODO:AppicationPoolName":C /E /C
- Tạo một file tên là log4net.config trong cùng thư mục với file web.config, với nội dung sau:
<?xml version="1.0"?> <log4net> <!-- Debug info is logged to a 'debug.txt' file --> <appender name="DebugFileAppender" type="log4net.Appender.FileAppender"> <file value="debug.txt" /> <appendToFile value="true" /> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <layout type="log4net.Layout.PatternLayout,log4net"> <conversionPattern value="%date [%thread] %type - %n%n%message%n%n" /> </layout> </appender> <!-- Debug logging is enabled, comment-out to disable --> <logger name="DebugLogger"> <level value="DEBUG" /> <appender-ref ref="DebugFileAppender" /> </logger> </log4net>Đoạn mã này sẽ đăng ký một log4net configuration section với những thiết lập cần thiết.
- Thêm những dòng sau vào phần đầu của phần <system.web>, ngay trên thành tố <httpHandlers>:
<httpModules> <add type=" Lanap.BotDetect.Troubleshooting.LoggingModule, Lanap.BotDetect.Troubleshooting" name="LoggingModule" /> </httpModules>Đoạn mã này sẽ đăng ký HttpModule truy vết lỗi.
Giải thích
File Lanap.BotDetect.Troubleshooting.dll chứa một HttpModule đặc biệt (gọi là LoggingModule), dùng để điều khiển sự kiện Captcha.PreValidateCaptcha và Captcha.PostValidateCaptcha và gửi dữ liệu cho đối tượng lưu được định nghĩa trong phần cấu hình của log4net.
Dự án ví dụ mẫu
Phương pháp được mô tả ở phần trên được hiện thực trong dự án mẫu giải quyết vấn đề đi kèm với BotDetect, vì vậy bạn có thể xem chi tiết trong mã nguồn (C# hoặc VB.NET) và file ví dụ web.config.
Cấu hình lưu lỗi nâng cao và bản quyền log4net
Vì LoggingModule sử dụng tiện ích mã nguồn mở log4net (http://logging.apache.org/log4net/), bạn có thể thay đổi phương thức lưu phù hợp với nhu cầu riêng của bạn: bạn có thể ghi vào file văn bản, database, hoặc console...
Có rất nhiều các tùy chọn và thiết lập khác nhau mà bạn có thể sử dụng, và chúng tôi khuyến khích bạn tìm hiểu thêm tại http://logging.apache.org/log4net/release/manual/introduction.html.
Bạn có thể đọc bản quyền của log4net tại http://logging.apache.org/log4net/license.html, cũng như trong thư mục con Assembly\Troubleshooting của thư mục cài đặt BotDetect ASP.NET CAPTCHA file (log4net license.txt và log4net notice.txt).
Định dạng của thông tin xác thực BotDetect CAPTCHA
Mỗi lần lưu lỗi xác thực Captcha chứa những thông tin sau:
- Ngày giờ sự kiện phát sinh, và kiểu của sự kiện
- Địa chỉ IP của máy khách, cookies và user agent
- Tham số của sự kiện, với dữ liệu xác thực như câu trả lời của người dùng và kết quả xác thực
Nội dung của Session state liên quan đến chức năng của BotDetect CAPTCHA:
- Session ID
- Giá trị của tất cả các khóa Session State sinh ra bởi BotDetect
- Tập hợp các mã dành cho Session hiện tại
- Thời gian sinh ra, nội dung cho mỗi mã
Ví dụ lưu xác thực BotDetect CAPTCHA
2009-09-05 16:42:48,343 [5304] Lanap.BotDetect.Troubleshooting.DebugLogger - PreValidateCaptcha, CLIENT IP 127.0.0.1 COOKIES ASP.NET_SessionId: fh3nfi55mvegjz45idqmktzf BROWSER Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729) , PreValidateCaptchaEventArgs USER INPUT: ASDASD CAPTCHA ID: default_samplecaptcha VALIDATING INSTANCE ID: c598856590de4914b2d368595522277c VALIDATION ORIGIN: Server , REQUEST LBD_VCT_default_samplecaptcha : c598856590de4914b2d368595522277c , SESSION ID : fh3nfi55mvegjz45idqmktzf LBD_CaptchaCodeCollection_default_samplecaptcha : CODE COLLECTION c598856590de4914b2d368595522277c : CAPTCHA CODE code : D9M4S generated at : 9/5/2009 4:42:41 PM image requested: True sound requested: False ----------------------------------------------------------------------- 2009-09-05 16:42:48,437 [5304] Lanap.BotDetect.Troubleshooting.DebugLogger - PostValidateCaptcha, CLIENT IP 127.0.0.1 COOKIES scroll: http://localhost/en.captcha.biz/demo/captcha-demo.aspx,0,0 ASP.NET_SessionId: fh3nfi55mvegjz45idqmktzf BROWSER Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729) , PostValidateCaptchaEventArgs USER INPUT: ASDASD CAPTCHA ID: default_samplecaptcha VALIDATING INSTANCE ID: c598856590de4914b2d368595522277c VALIDATION ORIGIN: Server VALIDATION RESULT: False , REQUEST LBD_VCT_default_samplecaptcha : c598856590de4914b2d368595522277c , SESSION ID : fh3nfi55mvegjz45idqmktzf LBD_CaptchaCodeCollection_default_samplecaptcha : CODE COLLECTION -----------------------------------------------------------------------
Phiên bản hiện tại của BotDetect
- BotDetect ASP.NET CAPTCHA v2.0.152009–11–23
- BotDetect ASP CAPTCHA v2.0.92009–02–12
Xin lưu ý
Trang này là bản dịch tiếng Việt không chính thức của trang gốc tiếng Anh: How To log BotDetect ASP.NET 2.0 CAPTCHA validation attempts và có thể không chính xác, không đầy đủ hoặc không cập nhật.
Cập nhật ngày 2009-11-30. Áp dụng cho BotDetect ASP.NET CAPTCHA v2.0.15 và BotDetect ASP CAPTCHA v2.0.9.





