배경 :확장 프로그램에서 북마크릿을 안전하게 실행합니까?
북마크를 검색하고 사용자의 URL을 열어 본 확장 프로그램을 작성했습니다.
내가 확장에 자바 스크립트 북마크 지원을 추가했고 지금은이 코드 비슷한하여 스크립트를 호출한다 :
var bookmark_address; // the address containing javascript:blah();
chrome.tabs.update({'url': bookmark_address});
: 이전
var bookmark_address; // the address containing javascript:blah();
var js = bookmark_address.substr(11);
chrome.tabs.executeScript({'code': js});
것은이 코드를 사용하고 있었다 처음에는 더 좋아 보이지만 실제로는 큰 차이가 없습니다. 둘 다 권한 ["tabs", "<all_urls>"]
이 필요합니다. 사용자가 북마크 지원을 사용하도록 선택하면 (예 : optional permissions) 권한을 요청하고 있습니다.
문제 : 난 그냥 보안 문제를 생각
. 북마크는 사용자가 추가하여 인 경우 일반적으로이지만 내 확장 프로그램이 스크립트를 "호출"하기 때문에 내 확장 프로그램의 컨텍스트에서 실행됩니다. 스크립트는 내 확장 프로그램의 로컬 저장소 및 변수를 엉망으로 만들 수 있습니다. 또한 실행 된 스크립트에 Cross-Origin XMLHttpRequest
을 수행 할 수있는 권한이있을 수 있습니다.(Docs)
정확하게 생각합니까? 정말로 보안 문제가 있습니까? 내 확장 프로그램에서 스크립트 실행을 "샌드 박싱"하거나 스크립트에 대한 사용 권한을 사용 불가능하게 설정할 수 있습니까?
확장 프로그램 사용자에게는 매우 좋지 않을 수 있으므로 문제를 심각하게 고려하십시오.