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

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.PreValidateCaptchaCaptcha.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.txtlog4net 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

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.

language: English Español Tiếng Việt