pub fn generate_security_report(text: &str) -> String
Expand description
Generate a security report for the given text
§Examples
use unicode_rs::security::*;
let report = generate_security_report("Hello\u{200B}World");
println!("{}", report);
Examples found in repository?
examples/security_analysis.rs (line 121)
86fn analyze_and_report(text: &str) {
87 println!("Text: {:?}", text);
88
89 let analysis = analyze_text(text);
90
91 // Quick summary
92 print!("Risk Level: ");
93 match analysis.risk_level {
94 RiskLevel::Low => println!("🟢 LOW"),
95 RiskLevel::Medium => println!("🟡 MEDIUM"),
96 RiskLevel::High => println!("🟠 HIGH"),
97 RiskLevel::Critical => println!("🔴 CRITICAL"),
98 }
99
100 // Detailed findings
101 if analysis.has_invisible_chars {
102 println!("⚠️ {} invisible character(s) detected", analysis.invisible_chars.len());
103 }
104 if analysis.has_bidi_overrides {
105 println!("⚠️ {} bidirectional override(s) detected", analysis.bidi_chars.len());
106 }
107 if analysis.has_mixed_scripts {
108 println!("⚠️ Mixed scripts detected ({} different scripts)", analysis.scripts.len());
109 }
110 if analysis.has_confusables {
111 println!("⚠️ Confusable characters detected");
112 }
113
114 if analysis.risk_level == RiskLevel::Low {
115 println!("✅ No security concerns detected");
116 }
117
118 // Show detailed report for high-risk items
119 if analysis.risk_level >= RiskLevel::High {
120 println!("\nDetailed Security Report:");
121 println!("{}", generate_security_report(text));
122 }
123}