기본 사항 Mendix 앱 보안 | Mendix

메인 컨텐츠로 가기

기본 사항 Mendix 앱 보안

앱 보안은 개발자가 앱을 만들 때 꼭 갖춰야 할 가장 중요한 측면 중 하나입니다. Mendix 앱. 그러나 개발자가 보안을 구현하기 전에 앱이 대부분 완성될 때까지 기다리거나 처음부터 올바른 보안 조치를 성공적으로 구현하지 않는 경우가 일반적입니다. 이는 앱이 프로덕션 환경에 들어가면 심각한 문제를 일으킬 수 있습니다.

이 블로그 게시물에서는 앱의 성공적인 보안을 위해 적용해야 할 주요 기본 사항에 대해 설명합니다.

프로젝트 보안 대 모듈 보안

"사용자 역할"이라는 용어는 앱에서 어디에 있는지에 따라, 즉 프로젝트에서인지 앱 모듈 중 하나에서인지에 따라 다양한 의미를 가질 수 있습니다. 기술적으로 사용자 역할은 앱에서 사용자가 가진 역할이고, "모듈 역할"은 앱 내의 특정 모듈에서 사용자가 가진 역할입니다. 하지만 실제로는 두 상황 모두에서 "사용자 역할"을 사용하는 것이 일반적입니다.

이는 어떤 역할이 어떤 것인지 기억하는 데 도움이 되는 간단한 정의입니다. 사용자 역할은 선택된 모듈 역할을 그룹화한 것입니다. 앱을 개발할 때 앱에서 사용할 각 모듈에 대한 모듈 역할 세트를 만들어야 합니다(모듈에 어떤 유형의 보안도 필요하지 않으면 모듈 역할이 필요하지 않습니다). 그런 다음 프로젝트 자체에 대한 사용자 역할을 만들 수 있습니다.

이는 사용자 역할에 여러 모듈 역할이 연관되어 있는 방법의 예입니다.

사용자 역할 보안 설정

엔티티 보안 대 템플릿 그리드 가시성

엔티티 보안과 템플릿 그리드 가시성을 언제 사용할지 아는 것은 매우 중요합니다. 앱이 안전한지 확인하려면 민감한 데이터가 데이터베이스에서 나가서는 안 될 때 나가지 않도록 해야 합니다. 엔티티 보안은 데이터베이스에서 클라이언트로 전송되는 데이터를 지정하는 동시에 사용자에게 앱 내에서 객체를 만들고 삭제할 수 있는 기능을 제공합니다.

액세스 규칙 스크린샷

엔티티 보안이 없으면 모든 페이지에서 엔티티에서 데이터 객체를 검색할 수 있습니다.템플릿 그리드 XPath 제약 조건이 있는 경우 서버의 데이터는 XPath 제약 조건 기준을 충족하는 경우에만 전송됩니다.그러나 이는 해당 특정 템플릿 그리드에만 적용됩니다.엔터티의 모든 데이터를 데이터베이스에서 클라이언트로 전송할 수 있기 때문에 템플릿 그리드 XPath 제약 조건은 보안으로 간주되지 않으며 그렇게 사용해서는 안 됩니다.이는 개발자가 앱을 개발할 때 흔히 하는 실수이며, 이 실수는 심각한 보안 문제를 일으킬 수 있습니다.엔터티에 특정 제약 조건을 설정하여 보안을 강화하려면 앱에서 만드는 모든 데이터 그리드에서 이 제약 조건이 자동으로 활성화되도록 엔티티 수준에서 XPath 제약 조건을 설정할 수 있습니다.

액세스 규칙 스크린샷

이 데이터의 보안이 중요하지 않고 특정 데이터 그리드에서 표시되는 데이터만 필터링하려는 경우 데이터 그리드 자체로 이동하여 여기에 표시된 대로 XPath를 설정할 수 있습니다.

XPath 스크린샷

마이크로플로우 앱 보안

앱에서 마이크로플로를 사용할 때 마이크로플로가 실행되기 전에 발생하는 첫 번째 보안 검사는 사용자에게 올바른 모듈 수준 보안이 있는지 확인합니다. 사용자에게 적절한 모듈 수준 액세스 권한이 있는 경우 마이크로플로와 이 트리거된 마이크로플로 내의 모든 하위 마이크로플로가 실행됩니다. 하위 마이크로플로는 하위 마이크로플로 수준에서 설정된 모듈 수준 보안 유형에 관계없이 부모 마이크로플로의 보안을 상속합니다. 따라서 실제로 여러 개의 하위 마이크로플로가 있는 마이크로플로가 있고 하위 마이크로플로 보안에 따라 일부 하위 마이크로플로만 실행될 것으로 예상하는 경우 설정은 하위 마이크로플로 보안에 종속되어서는 안 됩니다. 메인 마이크로플로가 실행될 때마다 실행되므로 보안 문제가 발생하기 때문입니다.

마이크로플로우 앱 보안

마이크로플로우의 보안은 마이크로플로우가 엔티티 보안을 활성화하여 어떤 데이터를 사용할 수 있는지 지시할지 여부를 선택할 수 있기 때문에 까다로울 수 있습니다. 마이크로플로우에 엔티티 보안이 활성화되지 않은 경우 사용자 역할은 사용자 역할이 엔티티 액세스 권한이 없는 엔티티에서 객체를 검색할 수 있으므로 보안 문제가 발생할 수 있습니다. 엔터티 액세스 적용 활성화되면 마이크로플로우의 배경이 노란색으로 바뀌고 데이터베이스에서 수행되는 모든 유형의 작업은 사용자 역할에 해당 작업을 수행할 수 있는 액세스 권한이 있는지 여부를 고려합니다. 이러한 추가된 보안 수준은 애플리케이션이 실수로 사용자에게 읽기, 쓰기 또는 삭제할 수 없는 개체를 삭제할 수 있는 권한을 부여하지 않도록 보장합니다.

엔티티 액세스

보안으로 인해 이상한 앱 동작 발생

앱을 개발하고 테스트할 때 흔히 겪을 수 있는 문제 중 하나는 모델러에 명확하게 있는 버튼이나 데이터 그리드가 보이지 않는 것입니다.

보안으로 인해 이상한 앱 동작 발생

이런 현상이 발생하면 가장 먼저 해야 할 일은 액션 버튼의 보안을 확인하는 것입니다. 새 소식 버튼을 클릭하려면 먼저 다음 사항을 확인해야 합니다. 새로운 객체 생성 허용 이 엔터티에 대한 확인란이 선택되었습니다.

새로운 객체 생성

이 상자가 체크되어 있는데도 버튼이 여전히 표시되지 않으면 버튼이 기본을 표시하는 대신 마이크로 흐름을 트리거하는지 확인해야 합니다. Mendix 새 소식 버튼. 위의 경우, 마이크로플로가 트리거되고 있습니다. 동작 버튼은 마이크로플로를 호출합니다. IVK_NewSalesContent이 마이크로플로우의 보안을 점검해 보면 사용자가 마이크로플로우에 접근할 수 없기 때문에 버튼이 표시되지 않는 것을 알 수 있습니다.

보안 모듈

맺음말

앱 보안은 성공적인 앱의 중요한 부분입니다. Mendix. 앱 개발 초기에 시간을 들이면 위에 설명된 문제 중 일부를 피하고 앱의 보안을 최대한 높이는 데 도움이 됩니다!

당신에 대한 자세한 내용을 원하시면 Mendix 앱 보안, 읽어주세요 Mendix 개발자 문서가 발견되었습니다 여기에서 확인하세요.

언어를 선택하세요