사용자가 웹 페이지에서 JavaScript를 입력하고 해당 페이지를 다른 사용자와 공유하도록 허용 할 생각입니다. 일어날 수있는 최악의 상황은 무엇입니까? 내가 그것을 '안전하게'만들 수있는 방법이 있습니까?사용자가 페이지에서 JavaScript를 입력하고 다른 사용자와 공유하도록 허용 하시겠습니까?
답변
다른 사람이 언급했듯이 자바 스크립트가 다른 사용자에게만 표시되고 실행되지 않으면 완벽하게 안전합니다 (코드를 수동으로 실행하는 사용자를 고려하지 않음).
그러나 코드가 실행되면 몇 가지 나쁜 일이 발생할 수 있습니다. 발생할 수있는 한 가지 나쁜 점은 사이트가 소위 puppetnet을 형성하는 데 사용된다는 것입니다. 퍼펫 넷은 봇넷과 비슷하지만 대신 브라우저를 사용하므로 단일 인형은 상대적으로 수명이 짧습니다 (인형과 봇넷을 구별합니다). 퍼핏 넷은 분산 서비스 거부 공격, 웜 전파, 스팸 및 기타 등등에 사용될 수 있습니다.
인형에 대한 자세한 내용은 http://www.cs.ucsd.edu/groups/sysnet/miscpapers/puppetnets-ccs06.pdf에서 확인할 수 있습니다.
에 달려 있습니다. 자바 스크립트를 텍스트 상자에 배치하면 텍스트 일 뿐이며 텍스트를 공유 할 수 있습니다. 여기에서 그 작업을 수행합니다. 정비사가 .js 파일에 텍스트를 저장하고 페이지에 자동으로 첨부하면 심각한 문제가 발생할 수 있습니다. 더 많은 설명이 여기 좋을 수도 있습니다.
일어날 수있는 일은 이름이 - Cross Site Scripting입니다. 기본적으로 (악의적 인) Mallory가 다른 (희생 된) 사용자 인 Alice의 컨텍스트에서 코드를 실행하도록 허용합니다.
Here은 ASP.Net에서 일어나는 것을 방지하기위한 종이입니다.
js 스 니펫의 동작이 아닌 콘텐츠를 공유하려는 경우 이는 다른 이야기입니다. 이 경우 Mallory가 게시 한 코드가 포함 된 Alice에 응답을 보내면 구문 분석 및 실행되지 않는 텍스트로 적절하게 묶여 있는지 확인해야합니다.
Here's은이 문제점이 갖고있는 많은 왜곡을 통과하는 또 다른 논문입니다.
- 1. '사용자가 메시지를 입력하고 있습니다'기능 ...?
- 2. 배포자를 사용하여 다른 사용자와 배포 하시겠습니까?
- 3. Firefox addon이 지정된 페이지에서 Javascript를 실행 하시겠습니까?
- 4. NGINX : 사용자가 디렉터리를 암호로 보호하도록 허용 하시겠습니까?
- 5. 사용자가 테이블을 만들고 변경하도록 허용 하시겠습니까?
- 6. Javascript를 사용하여 다른 페이지에서 변수 참조하기.
- 7. 한 페이지에서 다른 페이지에서 JavaScript를 작성하는 방법은 무엇입니까?
- 8. 태그를 통해 검색을 허용 하시겠습니까?
- 9. 사용자가 cron을 구성하도록 허용
- 10. 페이지에서 드롭 다운 포커스를 입력하고 jquery/javascript
- 11. DVD의 swf에서 javascript를 실행 하시겠습니까?
- 12. Microsoft Jet 데이터베이스 엔진이 사용자와 다른 사용자가 프로세스를 중지 함
- 13. 다른 사용자와 URLConnection
- 14. 사용자가 웹 응용 프로그램에서 첨부 파일을 편집하도록 허용 하시겠습니까?
- 15. 사용자가 제출할 때 입력하고 확인하는 동안 유효화하십시오.
- 16. CodeBehind 페이지에서 Javascript를 표시하지 마!
- 17. 사용자가 이메일을 통해 서버에 파일을 업로드하도록 허용 하시겠습니까?
- 18. 알파벳 만 입력하고 다른 문자는 입력하지 마십시오.
- 19. 사용자가 확장 탭을 통해 Immediacy 플러그인의 값을 입력하도록 허용 하시겠습니까?
- 20. 다른 사용자와 도메인에서 공유 파일을여시겠습니까?
- 21. Google 문서의 "다른 사용자와 공유"
- 22. 최종 사용자가 컨트롤을 이동하도록 허용
- 23. PHP에서 사용자가 HTML을 제출하도록 허용
- 24. Xcode : 사용자가 배경을 선택하도록 허용
- 25. 사용자가 XML 파일을 다운로드하도록 허용
- 26. 사용자가 테마를 선택하도록 허용 [Android]
- 27. Slideout 페이지에서 javascript를 사용하고 계십니까?
- 28. Asp.net MVC 사용자가 역할 간 전환 허용
- 29. Wordpress의 디스플레이 페이지에서 양식 편집 허용
- 30. 텍스트 필드에 이름을 입력하고 ID를 제출 하시겠습니까?
매우 흥미 롭습니다. 그리고 무서운. 고맙습니다. – Skofo