Magento는 심볼릭 링크를 통해 템플릿을 사용하지 않는 것이 좋습니다.
Advanced > Developer > Template Settings > Allow Symlinks
경고! 이 기능은 잠재적 인 보안 위험을 나타내므로 프로덕션 환경에서는 권장하지 않습니다.
오늘까지 나는 여기서 어떤 위험도 볼 수 없습니다.
- 위험은 무엇입니까?
Magento는 심볼릭 링크를 통해 템플릿을 사용하지 않는 것이 좋습니다.
Advanced > Developer > Template Settings > Allow Symlinks
경고! 이 기능은 잠재적 인 보안 위험을 나타내므로 프로덕션 환경에서는 권장하지 않습니다.
오늘까지 나는 여기서 어떤 위험도 볼 수 없습니다.
답변:
심볼릭 링크가 반드시 나쁘지는 않습니다.
우선 : symlink 대상을 열려고하면 대상의 파일 권한이 적용됩니다. symlink 대상을 읽거나 쓰거나 실행할 수 없으면 아무 일도 일어나지 않습니다.
그러나 : 문서 루트 외부에서 파일을 실행할 수 있습니다 (때로는 실제로 파일로 수행하려는 작업입니까?). END_LINK하면 관심이가 아닌 suEXEC를 환경과 경우 문제가 발생할 수 있습니다 apache
또는 www-data
에 사용자가 다른 계정에서 파일을 제공을 담당하고있는 공유 호스팅. 시스템 사용자는 다른 고객의 파일에 액세스 할 수 없지만 apache/www-data
대부분의 공유 계정에 대한 읽기 권한이 있습니다. 한 사용자가 공유 호스트에서 다른 사용자의 파일에 액세스 할 수있는 시나리오 일 수 있습니다. 자신의 사용자가 아니라 apache/www-data
사용자 와 브라우저를 통해 파일에 액세스합니다 . 요약하면 :이 시나리오에서는 다른 사용자의 파일에 액세스 할 수 있습니다 => 나쁜.
다음 나쁜 점은 공격자가 / etc / passwd와 같은 파일에 대한 심볼릭 링크를 생성하고이 데이터를 다운로드하여이 정보를 계속 진행할 수 있다는 것입니다. 이것은 심볼릭 링크뿐만 아니라 잘못된 서버 구성까지입니다 (이러한 파일에 대한 액세스가 엄격히 제한되어 있습니다). 따라서 심볼릭 링크를 사용하지 않으면 더 많은 공격을 막을 수 있습니다.
심볼릭 링크 자체가 보안 위험이 아니라 서버 구성 문제입니다.
app/design
를 다른 사소한 익스플로잇과 결합 할 때 폴더 외부의 템플릿 및 레이아웃 파일과 관련된 익스플로잇과 관련이 있습니다. 권한 상승 및 기타 서버 익스플로잇을 위해 관리자가 사용할 수 있습니다.
SymLinksIfOwnerMatch
옵션이 대신 사용되는 것을 고려하십시오 FollowSymlinks
.
네, 그렇기 때문에 웹 서버는 일반적으로 "심볼 링크를 따르지 않음"구성 또는 "동일한 사용자로 대상의 심볼릭 링크 만 따르기"를 갖는 이유는 무엇입니까?
그리고 웹 서버는 보통 보이는 / etc / shadow와 같은 것을 피하려고 시도하기 때문에 템플릿이 include ()를 통해 구문 분석되므로 magento 템플릿이 훨씬 더 위험합니다. 따라서 파일을 완전히 제어하지 않으면 매우 강력한 보안 누출이 발생할 수 있습니다.
다른 문제가있을 수 있지만, 모든 잠재적 인 공격 시나리오를 알고있는 사람은 많지만 문제가 적은 다른 보안 허점의 조합으로 인해 큰 문제가 발생할 수 있습니다.
또한 얼마 전에 미디어 디렉토리와 심볼릭 링크에 관한 보안 픽스가 있었으므로 가능한 공격 시나리오를 찾아보아야합니다.
나는 이것이 공유 호스트에 대한 위험이라고 생각할 수 있으며, 처음에는 전자 상거래에 사용해서는 안됩니다.
Magento 패치 SUPEE-9767 에는 APPSEC-1281 : symlinks를 통한 원격 코드 실행이 포함되어 있습니다 . 따라서 템플릿의 Symlink는 보안 문제입니다.
유형 :
원격 코드 실행 (RCE)CVSSv3 심각도 :
8.8 (높음)알려진 공격 :
예. 공격자는 관리자 액세스 권한을 얻은 후 구성 보호를 비활성화하고 악성 코드를 업로드하고 있습니다.설명 :
구성 설정에서 AllowSymlinks 옵션을 사용하면 악성 코드가 포함 된 이미지를 업로드 할 수 있습니다. 이 옵션은 기본적으로 비활성화되어 있지만 구성 설정을 저장하기위한 액세스 권한이있는 공격자는이 옵션을 활성화하고 원격으로 코드를 실행할 수 있습니다.영향을받는 제품 :
1.9.3.3 이전의 Magento CE 및 1.14.3.3 이전의 Magento EE고정 :
CE 1.9.3.3, EE 1.14.3.3, SUPEE-9767기자 :
Wilko Nienhaus
허용하지 않는 것이 좋습니다. 심볼릭 링크를 사용하는 동안 js 로딩 오류가 발생했습니다.
많은;
TypeError : $ .widget은 함수가 아닙니다
페이지를 성공적으로로드하려면 4-5 새로 고침을 시도해야합니다.
리소스를 닫은 후 처음으로 리소스로드가 느리게 배포되지는 않지만 js 오류가 사라졌습니다.
추신 : symlink를 비활성화 한 후에는 static.php를 변경할 때마다 배포 된 파일 사본을 삭제해야합니다.