JavaScript бастапқыда «веб-беттерді тірі ету» үшін жасалған. Бұл тілдегі бағдарламалар сценарийлер деп аталады. Оларды HTML-ге енгізуге болады және веб-бет жүктелген кезде автоматты түрде орындалады.Сценарийлер қарапайым мәтін ретінде таратылады және орындалады. Олар іске қосу үшін арнайы дайындықты немесе компиляцияны қажет етпейді. JavaScript-ті басқа тілден - Java-дан ерекшелендіретін нәрсе осы. Бүгінгі күні JavaScript браузерде ғана емес, сонымен қатар JavaScript деп аталатын арнайы бағдарламасы бар серверде немесе кез келген басқа құрылғыда жұмыс істей алады " қозғалтқыш».
Браузердің өз қозғалтқышы бар, оны кейде «JavaScript виртуалды машинасы» деп те атайды.Әртүрлі қозғалтқыштардың әртүрлі «код аттары» бар.
Қазіргі JavaScript – бұл «қауіпсіз» бағдарламалау тілі. Ол төмен деңгейлі жадты немесе процессорға кіруді қамтамасыз етпейді, себебі ол бастапқыда оны қажет етпейтін браузерлер үшін жасалған.
JavaScript мүмкіндіктері ол жұмыс істейтін ортаға өте тәуелді. Мысалы, NodeJs еркін файлдарды оқу/жазу, желілік сұраныстарды жасау және т.б. функцияларын қолдайды.
Веб-беттерді манипуляциялауға, пайдаланушы әрекетіне және веб-серверге қатысты кез келген нәрсе браузерде JavaScript үшін қолжетімді. Мысалы, браузерде JavaScript:
- Бетке жаңа HTML кодын қосыңыз, бар мазмұнды өзгертіңіз, стильдерді өзгертіңіз.
- Клиент жағындағы деректерді есте сақтаңыз («жергілікті сақтау»).
Браузердегі JavaScript мүмкіндіктері пайдаланушы қауіпсіздігі үшін шектелген. Мақсат - жосықсыз веб-беттің жеке ақпаратқа қол жеткізуіне немесе пайдаланушы деректеріне зиян келтіруіне жол бермеу.
Мұндай шектеулердің мысалдары мыналарды қамтиды:
Веб-беттегі JavaScript қатты дискідегі еркін файлдарды оқи/жаза алмайды, оларды көшіре алмайды немесе бағдарламаларды іске қоса алмайды. Оның ОЖ жүйесінің функцияларына тікелей қатынасы жоқ.
Қазіргі браузерлер оған файлдармен жұмыс істеуге мүмкіндік береді, бірақ қолжетімділігі шектеулі және оны пайдаланушы белгілі бір әрекеттерді орындаған жағдайда ғана қамтамасыз етеді, мысалы, файлды браузер терезесіне «сүйреп апару» немесе тегін пайдаланып таңдау.
Камерамен/микрофонмен және басқа құрылғылармен өзара әрекеттесу жолдары бар, бірақ олар пайдаланушының нақты рұқсатын талап етеді. Осылайша, JavaScript қолдауы бар бет веб-камераны көрінбейтін түрде қосып, не болып жатқанын бақылап, ақпаратты ФСБ-ге жібере алмайды.
Түрлі терезелер/қойындылар бір-бірінен бейхабар. Кейде JavaScript көмегімен бір терезе басқа терезені ашады. Бірақ соған қарамастан, бір беттегі JavaScript басқа сайттардан (басқа доменнен, протоколдан немесе порттан) келсе, басқасына қол жеткізе алмайды.
Бұл бірдей шығу саясаты деп аталады. Бұл шектеуді айналып өту үшін екі бет де осымен келісуі және арнайы жолмен байланысатын JavaScript кодын қамтуы керек.
Бұл шектеу пайдаланушының қауіпсіздігі үшін тағы да қажет. Пайдаланушы ашқан https://anysite.com парағы https://gmail.com URL мекенжайы бар басқа браузер қойындысына қол жеткізе алмауы және сол жерден ақпаратты ұрлауы мүмкін емес.
JavaScript ағымдағы бет келген сервермен оңай байланыса алады. Бірақ оның басқа сайттардан/домендерден деректерді алу мүмкіндігі шектеулі. Бұл қашықтағы тараппен нақты келісімді (HTTP тақырыптарында көрсетілген) қажет ететін принцип бойынша мүмкін болса да. Тағы да, бұл қауіпсіздік шектеуі.
Кейбір әлсіз тұстар:
⇒ Эксплойттерге осал (бағдарламалық құрал өнімінің осалдықтарын пайдаланатын зиянды код);
⇒ Пайдаланушының компьютерінде зиянды кодты іске қосу үшін пайдалануға болады;
⇒ Кейбір браузерлерде немесе құрылғыларда әрқашан қолдау көрсетілмейді;
⇒ JS код фрагменттері өте үлкен болуы мүмкін;
⇒ Әртүрлі құрылғыларда әртүрлі көрсетуі мүмкін, нәтижесінде тұтастық жоқ.