3 个不稳定版本

0.2.0 2020年9月17日
0.1.1 2020年9月17日
0.1.0 2020年9月17日

#5 in #canonicalize


2 crates 使用

GPL-2.0 许可协议

17KB
386 代码行数(不包括注释)

url_normalizer

url_normalizer 通过正则表达式标准化 URL 路径并从 URL 中移除参数。
示例用法

use url_normalizer::normalizer;

fn main() {
    let tainted_url1 = "https://example.com/main.php?c=1&b=2&a=5";
    let normalizer1 = normalizer::UrlNormalizer::new(tainted_url1).unwrap();
    assert_eq!("https://example.com/main.php?a=5&b=2&c=1", normalizer1.normalize(None).unwrap());

    let tainted_url2 = "https://example.com:8080/main.php?c=1&b=2&a=5&utm_source=facebook&utm_medium=social&utm_campaign=seofanpage";
    let normalizer2 = normalizer::UrlNormalizer::new(tainted_url2).unwrap();
    assert_eq!("https://example.com:8080/main.php?a=5&b=2&c=1", normalizer2.normalize(Some(&["utm_.*"])).unwrap());

    let tainted_url3 = "https://example.com:8080/./main.php?c=1&b=2&a=5";
    let normalizer3 = normalizer::UrlNormalizer::new(tainted_url3).unwrap();
    assert_eq!("https://example.com:8080/main.php?a=5&b=2&c=1", normalizer3.normalize(None).unwrap());
}

依赖项

~3–4.5MB
~101K SLoC