RUST는 관련이 없나요??

몇 주 전에 저는 회사를 위해 Cherrybomb(RUST로 작성된 오픈 소스 프로젝트)에 기여했습니다.

나는 RUST가 그다지 흔하지 않다는 것을 인정하고, RUST에 대한 강력한 배경 지식 없이는 그것이 가능한지 의심스러웠습니다.

이 이야기에서는 이 프로그래밍 언어에 대한 첫 번째 생각을 여러분과 공유하고 API 사양에 대해 조금 설명하겠습니다.

체리밤 소개



BLST에 따르면 Cherrybomb은 API에서 이상을 찾기 위한 전용 오픈 소스 도구입니다.

"CLI tool that helps you avoid undefined user behavior by validating your API specifications."



이 제품은 최신 API의 비즈니스 로직 결함을 해결해야 할 필요성을 충족하도록 설계되었습니다.
2021년부터 Broken Access Control 수치는 OWASP에서 1위를 차지했습니다.
잘못된 액세스 제어 목록은 비즈니스에 심각한 문제를 일으킬 수 있습니다.

멋진



약탈의 정의:


현재 OAS(Open API Specification)라고 하는 Swagger는 사람과 컴퓨터가 소스 코드, 문서에 액세스하지 않고 또는 네트워크 트래픽 검사를 통해 서비스 기능을 검색하고 이해할 수 있도록 하는 RESTful API에 대한 표준 언어 독립적 인터페이스를 정의합니다.
BLST Security는 여전히 해당 기능을 SWAGGER라고 부르기로 선택합니다.
swagger는 보안 이상을 확인하기 위해 OAS 파일을 입력으로 가져와 구문 분석하도록 설계되었습니다.
펜테스터에 대한 AOS에 대한 글을 작성했습니다. 확인하실 수 있습니다.

RUST에 대한 몇 마디..



솔직히 나는 기여하는 동안이 프로그래밍 언어에 대한 경험이 없습니다. 그래서 RUST는 지금까지 배운 다른 언어들과 많이 다릅니다.
하지만 저는 Rust가 좋은 프로그래밍 언어라고 믿습니다. 그것은 오늘날의 세계에서 중요한 안전과 보안에 중점을 둡니다.
Rust를 특별하게 만드는 많은 것들이 있지만 가장 주목할만한 것 중 하나는 성능이며 고유한 소유권/차용 시스템을 잊지 마십시오. 이러한 기능은 시스템 프로그래밍을 위한 탁월한 선택이며 광범위한 프로그래밍 커뮤니티에서 빠르게 인기를 얻고 있습니다.
또한 매우 활동적이고 지원적인 커뮤니티가 있습니다.
자세한 내용은 RUSTBook를 확인하시기 바랍니다.

나의 기여



기여하려면 OASstructure를 이해해야 합니다.
그런 다음 기여를 시작하려면 이 항목manual을 확인하십시오.

내 기여는 주어진 OAS에 따른 CRUD의 권한을 확인하는 것이었습니다.
-GET은 읽기 권한만 있어야 합니다.
-POST에는 읽기 쓰기 권한이 있습니다.
-PUT에는 쓰기 권한만 있습니다.

다음 코드는 GET 권한 확인을 설명합니다.

  fn get_check(security:&Option<Vec<Security>>,path:&str)->Vec<Alert>{
        let mut alerts = vec![];
        match security {
            Some(x) => {
                for i in x {
                    let y = i.values().cloned().flatten().collect::<Vec<String>>();
                    for item in y {
                        if  !item.starts_with("read"){
                            alerts.push(Alert::new(Level::Medium,"Request GET has to be only read permission",format!("swagger path:{} method:{}",path,Method::GET)));
                        }
                    }
                }
            },
            None => (),
        };
        alerts
    }


구문이 다른 일반적인 프로그래밍 언어에 비해 매우 다르지만 시간이 걸립니다.
그게 다야. 기능이 쉬워보이지만 소인이 아닌 사람에게는 쉽지 않은 일이었다.
RUST에 대한 지식이 있다면 주저하지 말고 기여하세요.
치어스🥂

좋은 웹페이지 즐겨찾기