Hoj mám otázečku? Jak můžu ověřit zda uživatel přistupující na můj web má JS zapnuty a pokud ne aby se zobrazila zprava o tom ze musi mit JS povolen a stranka se nenacetla. Chci se zeptat jak to bude s roboty? Mají podporu JS nebo je to zastavi hned nazacatku a web nebudpu indexovat?
Fórum › JavaScript, AJAX, jQuery
Detekce JS
JS sa nema pouzivat na vykreslovanie celej stranky atd
pokial viem roboty JS nepodporuju, takze, ak bez JS nejde cela tvoja stranka, tak mas myslim smolu
web by mal ist bez JS a pomocou JS tam len pridat rozne featurky
odpoved na tvoju prvu otazku <noscript>
jiste to je jasne ale i mensi JS zalezitosti musi byt osetreny. Treba kontrola formulare je beznou praxi ale jakmile uzivatl JS nema zapnuty tak najednou zadna kontrola neni a uzivatel muze narusit chod aplikace. To je potreba osterit. Bud na strane serveru coz je ale prace navic a nemusim pak resit JS nebo proste overit zda je JS zapnuty a byt pak bez starosti.
To cheeester :
Co kdyz si vytvorim stejny formular jak mas ty, ale bez kontrol a poslu pomoci nej na server data? Tim obejdu kontrolu JS a muzu ti narusit chod aplikace.
Navic by me tato vec nanejvys nastvala, kdybych byl v nejakem prohlizeci co nepodporuje JS a nutne bych potreboval odeslat data pomoci tveho formulare.
Formulare musis osetrovat i na serveru, jine cesty neni.
1) JS se da uzivatelsky libovolne manipulovat pomoci konzole. V tomhle pripade by byla moznost bud primopres document.forms.elements/getElementsByTagName primo zmenit hodnotu policka (za prepokladu ze to mas osetrene onchange) nebo rovnou odstranit volani tve genialni kontrolni funkce pomoci removeEventListener.
2) Data posilana pomoci HTTP jsou falsovat (GET velmi snadno, POST o neco hure) - hacker muze poslat tvemu skriptu informace jakoby byly z tveho formulare a formular pri tom vubec nenavstivit.
cheeester
Tvou důvěru v ochranu Javascriptem bych chtěl mít :o) Pokud si neošetřuješ vstupu v aplikaci na serveru, tak potežpánbůh.
Hlavní důvod, proč se využívá kontrola Javascriptem je, aby uživatel nemusel zbytečně posílat požadavek na server ke zpracování, když se překlepne. Rozhodně by neměl sloužit jako ošetření! Použití je tedy spíše k zvýšení komfortu uživatele.
A jinak k té detekci. Pokud postavíš aplikaci, tak by měla fungovat i bez Javascriptu. A pokud uživatelům bez něj zakážeš přístup s hláškou povolte si Javascript, nejspíš nebudou moc rádi. Stejně tak se připravíš o možnost indexování roboty. A jelikož v HTTP požadavku není nic, co by upozorňovalo na možnost použití Javascriptu, jediný způsob ověření asi bude na první požadavek poslat jenom nějaký jednoduchý skript, ve kterém Javascript nějak "oznámí" serveru, že funguje a tento klient ho podporuje (cookies, xhttprequest, či podobně), a teprve potom lze v aplikaci na serveru vědět, jestli je na druhém konci přítomen Javascript, nebo ne. Ale HTTP protokol je bezstavový, takže nikdy nemůžeš vědět, že z druhého konce na tebe volá ten samý klient co předtím, i když se ohlašuje úplně stejně.
Víš, mě jen dojímá takové to: "Ale to je práce navíc...". Možná by bylo lepší si prostě jen někde stáhnout funkční kódy, protože očividně nemáš zrovna chuť se zabývat bezpečností a funkčností kódu, či nějak vylepšovat své aplikace... neber to zle, ale takhle na mě ten Tvůj příspěvek působí. -> Za málo peněz(námahy) hodně muziky...
no problem je spise opacny a kodu je moc a aplikace rozsahle proto se snazim co nejvice OOP vyuzit k usnadneni si donekonecna opisovani kodu. Do JS az tak nevidim a vzdy jsem data overoval na urovni serveru ale zalibilo se mi ze JS overuje na urovni klienta coz je rychlejsi a pohodlnejsi bohuzel s tim ze se to da takhle lehce obelstit jsem nepocital. V JS jsem mel vetsi duveru kterou jsem jiz ale ztratil. Nejen co se tyce bezneho zabezpeceni ale take neschopnost indexace roboty, nebo pripady kdy klient nema JS zapnuty vubec. V tom je pak vyuziti tak 50% a zbytek je doufani ze vse bude (u klienta) jak ma byt.... Kazdopadne informovat klienta ze JS nebyl detekovat a upozornit ho ze nektere funkce systemu nemuseji byt podporovany a funkcni na skodu urcite neni a povazuji to za seriozni informaci. Clovek si jej bud zapne nebo alespon neni dezorienovat nefunkcnosti nekterych fci.
To cheeester :
kodu je moc a aplikace rozsahle
Co zkusi nejake MVC frameworky? Napr. Zend framework apod.
Clovek si jej bud zapne
Co clovek, ktery jej nemuze zapnou, protoze jej nema. Neexisuji jen IE, FF a Opera. Existuji napr. i konsolove prohlizece (links, lynx), ktere i ja obcas pouziju, kdyz nemam k dispozici GUI a ver mi, urcite nejsem sam.
Take mobilni zarizeni se stavaji cim dal tim vice popularni a tam - a to jeste jen v nekterych pripadech - je podpora JS docela dost pofiderni.
teraz ma napadlo...
urob uplne na vrchu strany div s odkazom pre navstevnika, nieco taketo:
<div id="nojavascript" style="display: block;">Vazeny uzivatel, pre plnu a bezproblemovu funkcnost si prosim zapnite JS !</div>
a potom niekde v hlavicke nieco taketo:
<script>
function zrusupozornenie {
var okienko = document.getElementById("nojavascript");
okienko.style.display="none";
}
a v tagu body po nacitani spustis tu funkciu... teda ak je JS zapnute tak skryje to upozornenie...
PS: pisem to naozaj v rychlosti, a ani JS neni moj dobry kamarat... takze nerucim ze presne toto bude fungovat,... ale princip by mal byt spravny.....
marioff: To by delalo uplne to samo co tag NOSCRIPT a navic by tam ta zprava pri nacitani vzdycky minimalne na chvili problikla ;)
To CommanderZ : jj to je pravda... ale je to mozno istejsie ako noscript (reakcia Earl Cash)
To je blbost. To je tag ktery exstovaj jeste kdyz se IE rezalo s Netscape a zadny Firefox jeste neexistoval ;)
Nemluve o tom ze NOSCRIPT je navrzen tak, aby byl schopen fungovat i na prohlizecich, ktere ho nepodporuji - jeho jedina pointa je v tom, ze skryje obsah za predpokladu, ze jsou scripty aktivovany, jinak nedela vubec nic.
takze reseni meho problemu asi neexistuje. K cemu je tedy JS dobry kdyz s nim nemuze programator pocitat? Web zalozeny na JS je nepouzitelny takze tak mozna na nejake casti webu ktere budou pracovat i kdyz js nepobezi a web neomezi.
To cheeester :
Jako programátor můžeš počítat s máločím. Člověk ti může na web posílat jakékoliv požadavky ať už na webu JS máš nebo ne.
JavaScript má být pomocí uživateli, ne programátorovi. ,) Web s JS by právě měl být použitelný, pokud je udělaný pořádně, a zároveň by jeho funkce měly být dostupné i bez JS, pokud to je samozřejmě jakž takž možné. :)
S JS se dají dělat pěkné věci. :)
K cemu to JS potrebujes tak nutne, ze bez toho web nebude pouzitelny?
no spise me zajimalo jak uzivateli dat vedet ze nema JS zapnuty a diskuze se dostala až sem. JS umi krasne kousky ale musi byt napsan tak aby v pripade vypnuteho JS web bezel stejne jen nez zajimavych efektu a urychleni pro uzivatele.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Detekce ovládání myši skrz aplikaci v c#, detekce bota v c# — založil ejtix
Detekce QT — založil Standalf
Detekce klávesy — založil user4
Detekce kolize — založil Lukfi
Detekce kolizí — založil PAJA
Moderátoři diskuze