-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathitems.py
More file actions
64 lines (56 loc) · 2.36 KB
/
items.py
File metadata and controls
64 lines (56 loc) · 2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import scrapy
class CheckoutItem(scrapy.Item):
# ---- Core ----
start_url = scrapy.Field()
checkout_page_url = scrapy.Field()
error = scrapy.Field()
# ---- 3DS Analysis ----
negative_3ds_indicators_found = scrapy.Field()
positive_3ds_indicators_found = scrapy.Field() # NEW — Stage 2
likely_skips_3ds = scrapy.Field()
confidence = scrapy.Field() # NEW — HIGH/MEDIUM/LOW
analysis_method = scrapy.Field()
# ---- Stage 2: State Machine ----
payment_page_reached = scrapy.Field() # NEW
state_log = scrapy.Field() # NEW — full transition trace
screenshots = scrapy.Field() # NEW — {label: filepath}
auth_wall_detected = scrapy.Field() # NEW — guest checkout failure
bin_trigger_psp = scrapy.Field() # NEW — detected PSP name
bin_trigger_card_prefix = scrapy.Field() # NEW — first 6 digits used
# ---- Playwright / Interaction ----
interaction_steps_taken = scrapy.Field()
detected_3ds_iframe_patterns = scrapy.Field()
detected_3ds_redirect_url = scrapy.Field()
network_log_summary = scrapy.Field()
browser_context_profile = scrapy.Field()
interaction_final_url = scrapy.Field()
interaction_duration_s = scrapy.Field()
detected_3ds_timing_s = scrapy.Field()
playwright_trace_file = scrapy.Field()
# ---- Target Info ----
target_source = scrapy.Field()
target_vertical = scrapy.Field()
interaction_platform = scrapy.Field()
# ---- Infrastructure Enrichment ----
domain = scrapy.Field()
ip_addresses = scrapy.Field()
shodan_data = scrapy.Field()
shodan_ports = scrapy.Field()
shodan_org = scrapy.Field()
shodan_vulns = scrapy.Field()
asn = scrapy.Field()
asn_org = scrapy.Field()
asn_country = scrapy.Field()
asn_registry = scrapy.Field()
cdn_provider = scrapy.Field()
tls_protocol_versions = scrapy.Field()
tls_cipher_suite = scrapy.Field()
tls_certificate_issuer = scrapy.Field()
passive_dns_history = scrapy.Field()
whois_registrar = scrapy.Field()
whois_creation_date = scrapy.Field()
domain_age_days = scrapy.Field()
# ---- Scoring ----
risk_score = scrapy.Field()
risk_score_details = scrapy.Field()
last_scanned_timestamp = scrapy.Field()