Function generate_security_report

Source
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}