#scan #security #web

webscan

跨平台网页扫描库

5 个版本 (重大变更)

0.4.0 2022年5月21日
0.3.0 2022年4月23日
0.2.0 2021年5月16日
0.1.0 2021年4月17日
0.0.1 2021年4月9日

#scan 中排名 47

MIT 许可证

33KB
604

webscan Crates.io 许可证

跨平台网页扫描库
旨在轻量级和快速。

功能

  • URI 扫描
  • 域名扫描

用法

webscan 添加到依赖项

[dependencies]
webscan = "0.4.0"

示例

URI 扫描示例

extern crate webscan;
use webscan::{UriScanner, ScanStatus, RequestMethod};
use tokio;
use std::fs::{read_to_string, read};
use std::time::Duration;

#[tokio::main]
async fn main(){
    let mut uri_scanner = match UriScanner::new(){
        Ok(scanner) => (scanner),
        Err(e) => panic!("Error creating scanner: {}", e),
    };
    let base_uri = String::from("https://127.0.0.1:8000/");
    uri_scanner.set_base_uri(base_uri);
    let data = read_to_string("uris.txt");
    let text = match data {
        Ok(content) => content,
        Err(e) => {panic!("Could not open or find uris.txt file: {}", e);}
    };
    let word_list: Vec<&str> = text.trim().split("\n").collect();
    for word in word_list {
        uri_scanner.add_word(word.to_string());
    }
    match read("content.txt") {
        Ok(ct) => {
            let sep = b'\n';
            ct.split(|b| b == &sep )
                .for_each(|c| uri_scanner.add_content(c.to_vec()));
        },
        Err(e) => {panic!("Could not open or find content.txt file: {}", e);}
    }
    uri_scanner.set_request_method(RequestMethod::Get);
    uri_scanner.set_timeout(Duration::from_millis(20000));
    uri_scanner.set_accept_invalid_certs(false);
    uri_scanner.run_scan().await;
    let result = uri_scanner.get_result();
    print!("Status: ");
    match result.scan_status {
        ScanStatus::Done => {println!("Normal end")},
        ScanStatus::Timeout => {println!("Timed out")},
        _ => {println!("Error")},
    }
    println!("URI Scan Result:");
    for (uri, status) in result.responses {
        println!("{} {}", uri, status);
    }
    println!("Scan Time: {:?}", result.scan_time);
}

更多详细信息请参阅 示例

支持的平台

  • Linux
  • macOS(OS X)
  • Windows

依赖项

~5–17MB
~257K SLoC