Implement collections

This commit is contained in:
2024-06-28 00:20:37 +02:00
parent 262d8fd0c2
commit a5239cd7f5
4 changed files with 24 additions and 2 deletions

View File

@ -5,12 +5,12 @@
- `https://security.wdes.eu/scanners/stretchoid.txt` (List of all known stretchoid IPs) - `https://security.wdes.eu/scanners/stretchoid.txt` (List of all known stretchoid IPs)
- `https://security.wdes.eu/scanners/binaryedge.txt` (List of all known binaryedge IPs) - `https://security.wdes.eu/scanners/binaryedge.txt` (List of all known binaryedge IPs)
- `https://security.wdes.eu/scanners/censys.txt` (List of all IPs declared by censys scanner on their FAQ) - `https://security.wdes.eu/scanners/censys.txt` (List of all IPs declared by censys scanner on their FAQ)
- `https://security.wdes.eu/collections/wdes/bad-networks.txt` (List of some hand picked bad networks)
- `https://security.wdes.eu/collections/bad-ips.txt` (List of some hand picked bad IPs that caused harm/attacks/scans to mail servers)
## To be migrated ## To be migrated
- `internet-measurement.com.txt` (List of all IPs declared by internet-measurement.com on [their website](https://internet-measurement.com/#ips)) - `internet-measurement.com.txt` (List of all IPs declared by internet-measurement.com on [their website](https://internet-measurement.com/#ips))
- `bad-networks.txt` (List of some hand picked bad networks)
- `bad-ips.txt` (List of some hand picked bad IPs that caused harm/attacks/scans to mail servers)
## Other similar projects ## Other similar projects

View File

@ -331,6 +331,25 @@ fn handle_report(conn: &Mutex<Connection>, request: &Request) -> Response {
} }
} }
fn handle_get_collection(request: &Request, static_data_dir: &str) -> Response {
// The `match_assets` function tries to find a file whose name corresponds to the URL
// of the request. The second parameter (`"."`) tells where the files to look for are
// located.
// In order to avoid potential security threats, `match_assets` will never return any
// file outside of this directory even if the URL is for example `/../../foo.txt`.
let response = rouille::match_assets(&request, static_data_dir);
if response.is_success() {
return response;
}
return Response {
status_code: 404,
headers: vec![("Content-Type".into(), "text/plain; charset=utf-8".into())],
data: ResponseBody::from_string("File not found.\n"),
upgrade: None,
};
}
fn handle_list_scanners( fn handle_list_scanners(
conn: &Mutex<Connection>, conn: &Mutex<Connection>,
static_data_dir: &str, static_data_dir: &str,
@ -615,6 +634,9 @@ fn main() -> Result<()> {
(GET) (/scanners/{scanner_name: Scanners}) => { (GET) (/scanners/{scanner_name: Scanners}) => {
handle_list_scanners(&conn, &static_data_dir, scanner_name, &request) handle_list_scanners(&conn, &static_data_dir, scanner_name, &request)
}, },
(GET) (/collections/{vendor_name: String}/{file_name: String}) => {
handle_get_collection(&request, &static_data_dir)
},
(GET) (/{api_key: String}/scanners/{scanner_name: String}) => { (GET) (/{api_key: String}/scanners/{scanner_name: String}) => {
let mut mac = HmacSha256::new_from_slice(b"my secret and secure key") let mut mac = HmacSha256::new_from_slice(b"my secret and secure key")
.expect("HMAC can take key of any size"); .expect("HMAC can take key of any size");