Kezdőoldal » Számítástechnika » Programozás » Van megoldás erre a JavaScript...

Van megoldás erre a JavaScript-es problémára?

Figyelt kérdés

Adott egy HTML (.html) oldal, amin vagy egy textBox és egy Button.

Ezek mellett pedig 2 JavaScript (.js) fájl.

A feladat, hogy a Button megnyomásakor a textBoxban lévő, már kézzel begépelt függvényt (paraméterekkel együtt) meghívja.


A textBox-ba kézzel beírt függvények, pl: sajatFuggveny(ertek2, ertek2);


Amire én gondoltam; hogy mondjuk egy a változóba lekérni a textBox.value értéket és azt lefuttatni, viszont itt már meg is akadtam, mert nem hiszem hogy meg lehetne hívni egy függvényt változóból.


Utána néztem google-en, de semmi egyértelmű választ nem találtam.


Minden megoldás érdekel :P



2020. máj. 27. 16:38
 1/8 anonim ***** válasza:
Meg lehet hívni, eval a neve a function-nek, amivel meg tudod hívni. Ezt MINDENÁRON el kell kerülni, akkora biztonsági kockázat.
2020. máj. 27. 16:50
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
Annyival kiegészítem magam: ha mindenképp ilyesmit akarsz készíteni, akkor egy whitelist megoldás kell: azaz készítesz egy "listát" azokról a függvényekről, amelyeket biztonságos meghívni. Aztána feldolgozóban eval helyett csinálsz egy vizsgálatot, hogy benne van-e a whitelist-ben. Így sem sokkal biztonságosabb, de már kicsi is sokat segít.
2020. máj. 27. 16:57
Hasznos számodra ez a válasz?
 3/8 A kérdező kommentje:

Huh, köszi a gyors választ :D


Milyen egyéb megoldás van még erre?


Írod, hogy az eval()-t el kéne kerülni. Értem a biztonsági kockázat lehetőségeit ebben a példában, ez csak tesztelési célból fog létrejönni.

Éles helyzetben nem, vagy csak kivételes helyzetekben használnám.


Továbbra is érdekelnek az alternatív megoldások.

2020. máj. 27. 17:01
 4/8 A kérdező kommentje:

A whitelist nekem is eszembe jutott azonnal, ahogy leírtad az első válaszleveled.


Mindenképpen alkalmazni fogom, ha ilyenre kerül sor.

2020. máj. 27. 17:05
 5/8 anonim ***** válasza:

(bocs nem a kerdesre valaszol, de erdekel)

#1 kifejtenéd, hogy moért biztonsági kockázat??

2020. máj. 27. 23:09
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

Jelen esetben a javascript csak lokálisan fut, így kevésbé veszélyes, nincs ajax kérés. Így nem annyira veszélyes, mert a veszély nagyrészt annyi, hogy hülyeséget futtat az illető, és inkonzisztens adat lesz belőle, esetleg lehal.

Azonban ha egyetlen kommunikáció is fennáll a szerverrel js segítségével, akkor ha ügyes az illető, az egész webes rendszert tönkrevághatja, törölheti, ellophatja az adatbázist...

Szóval jelen esetben jó az az eval, de éles helyzetben szinte sosem használjuk. (ahol nem kockázat, ott is felesleges marhaság, tervezési hibára utal ha használjuk).

2020. máj. 27. 23:47
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

#6 Lehet csak a BE fejlesztő beszél belőlem, de ha egy JS kódban BÁRMIT el lehet úgy rontani, hogy az kárt okozzon, akkor ott a szerveroldal implementációjában van a hiba. A böngészőkben futó js soha nem volt és nem is lesz a legkisebb mértékben sem biztonságos, és ennek fényében kell a mögöttes szervert biztonságosra megírni.


Ez nem változtat azon, hogy az eval() függvénynek production kódban semmi keresnivalója, funs and giggles kategóriába, meg esetleg tesztelési célokra elmegy, de ennyi az annyi.

2020. máj. 28. 03:52
Hasznos számodra ez a válasz?
 8/8 A kérdező kommentje:

Köszönöm mindenkinek a véleményét.


Ez egy iskolai tesztfeladathoz kellett.

Az eval()-t felhasználva sikerült megoldani.


Ahogy az előttem lévő néni/bácsi írta, ez nem teljesen biztonságos. A tanárunk is felhívta erre a figyelmet, hogy okosan szabad csak használni.


Annak ellenére, hogy már megoldódott a problémám, továbbra is várom az alternatív ötleteket :P

2020. máj. 29. 11:40

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!