라벨에 대한 취약성 대책
개시하다
이번에는 라벨의 사업에서 해야 할 취약성 대책 중에서도 손쉽게 시행할 수 있는 설정 사업을 중심으로 총화하고자 한다.
세션 관리에 쿠키를 사용하여 Secure 속성 부여
secure 속성을 추가하여 HTTPS 통신만 허용합니다.(HTTP 통신을 통한 액세스 방지)
Laavel의 경우 다음과 같은 설정을 통해 secure 속성을 부여할 수 있습니다.
// session.php
'secure' => true,
secure 속성이 추가되었는지 개발 도구의 네트워크 옵션 카드에서 확인할 수 있습니다.Cache-control 지정
Laavel 기본값은
cache-controlno-cache입니다.언뜻 보기에는 '캐시 금지' 인 것 같지만, 이 상태에서는 브라우저의 캐시 기록에서 페이지를 복구할 수 있습니다.
보안상 페이지에 따라 이 동작을 제한하려는 경우가 있을 수 있으므로 이 경우 설정
no-store이 필요합니다.·Cache-control:privete→웹 서버에서 되돌아오는 내용이 한 사용자만 있음을 나타낸다.이 내용은 여러 사용자가 공유하는 캐시에 기록해서는 안 된다는 것을 나타낸다.그러나 이는 한 사용자만 이용하는 캐시(브라우저의 캐시 등)를 금지한 기록이 아니다.priverte만 지정하면 캐시에 기록할 수 있습니다.
• Cache-control: no store → 이 헤더는 웹 서버에서 되돌아오는 내용을 캐시에 기록하지 말라고 지시합니다.
Cache-control: no-cache → 언뜻 보면'캐시를 사용하지 마라'는 듯한 이 머리는 실제적으로 의미가 조금 다르다.이 헤더는 캐시에 기록된 내용이 현재 유효한지 원래의 웹 서버에 물어보면 다시 사용할 수 없다는 뜻이다.
• Cache-control:must-revalidate → 이 헤더는 웹 서버에 캐시에 기록된 내용이 현재 유효한지 물어봐야 한다고 표시합니다.
인용원
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/405.html
CORS 설정
웹 클라이언트와 API 서버를 분리하여 설치할 때는 CORS를 설정해야 합니다.
원래 브라우저는 안전상의 이유로 같은 오리지널 정책에 따라 같은 오리지널 소프트웨어만 요청할 수 있다.
같은 원시 정책을 따르면 다른 사냥꾼자리로부터의 접근을 제한합니다. 예를 들어 안내데스크와 서버를 분리해서 실시할 때 접근을 거부하지 않습니다.
(Laavel 측은 localhost:8000으로, Nuxt 측은 localhost:3000으로 이동할 때
localhost: 3000의 Nuxt 측에서 localhost: 8000의 Laavel 측의 API에 접근할 수 없음)
따라서 Laravel 7 이후에는 cors가 됩니다.원래 php라는 파일을 준비했는데, 이 파일의
allowed_origins 기본값은 * 로 지정됩니다.이 상태에서 모든 오리온은 통신이 허용된 상태여서 필요한 오리온만 제한된다.
// cors.php
'allowed_origins' => [],
'allowed_origins_patterns' => // ここに許可するオリジンを指定する
htaccess 파일 수정
.htaccess 파일은 Apache가 사용하는 환경에서 사용할 수 있는 디렉터리 단위로 인증 정보를 지정하고 목적지를 다시 지정할 수 있는 파일을 말한다.
Apache를 사용하더라도 사용자 인증 설정은 httpd입니다.건의는 conf에 쓰십시오.htaccess 파일을 사용하는 것을 추천하지 않는 것 같습니다.
. htaccess 파일이 있으면 쿠키를 삭제한 상태에서도 브라우저에서 다음 URL에 액세스할 수 있습니다.htaccess 파일을 확인할 수 있습니다.
https://mysite.go.jp/.htaccess // 元のオリジンに「/.htaccess」を追加してる
.htaccess 파일에서 공개하지 말아야 할 설정 파일과 다른 사용자의 로그인 ID 등을 열람할 수 있다.필요 없으면 삭제해.
세션 유지 시간
예기치 않은 트랩은 세션 유지 시간입니다.
.env 파일
SESSION_LIFETIME은 120(2시간)으로 설정됐지만 실제로는 10시간 이상을 유지했다.조사 결과 TaskDefinition 파일을 사용하여 환경 변수를 공식적으로 지정했으며, 이 파일의 경우
SESSION_LIFETIME가 10시간이 넘는 것으로 나타났다.최후
이번에는 비교적 실현하기 쉬운 라벨의 취약성 대책을 총결산했다.
여기 아니야!이런 데가 있으면 부드럽게 말해주면 고맙지.
끝까지 읽어주셔서 감사합니다!
Reference
이 문제에 관하여(라벨에 대한 취약성 대책), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/yuzuyuzu0830/articles/011681894a0f6b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)