[php + ajax] Verstandig website volledig ajax support?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Jboy1991
  • Registratie: September 2012
  • Laatst online: 19:03
Goedendag,

Inmiddels ben ik al langere tijd aan het programmeren voor mijn site, maar ik zit met een vraag of iets wel verstandig en veilig is.

Op dit moment wil ik het zo gebruiksvriendelijk maken. Dus niet complete paginas herladen bij het bijvoorbeeld versturen van data etc.

Laatst las ik hier een artikel over dat er blijkbaar ook een ""groot"" doelgroep is die standaard j(ava)script uit heeft staan om veiligheid redenen.

Maar nu zit ik met het volgende situatie:
Hoe veilig is jscript icm ajax - php ?
Wordt het aangeraden om alleen bijv delen van paginas te herladen (controleren of er nieuwe data beschikbaar is zoals hier bij het forum). Of kan je gerust je hele site in ajaxphp schrijven?

Acties:
  • +1 Henk 'm!

  • ParadoxMedia
  • Registratie: September 2012
  • Laatst online: 03-10 19:06
Er is een groot verschil tussen JAVA en JAVASCRIPT. Alhoewel de naam enige gelijkenissen vertoont, doet de taal dat zelf niet echt. JAVA staat tegenwoordig in alle browsers uit, javascript daarintegen is "essentieel" voor zowat elke website en staat daardoor bij meer dan 99% van de mensen gewoon aan.

Javascript en PHP zijn een prima combinatie. Echter het gaat er wel om wat je doet met data van de gebruiker, deze moet je ten allen tijden valideren op malifide input.

Qua refreshen van data: dat ligt puur aan je eigen wensen, kijk daarvoor eens naar websockets.

Acties:
  • 0 Henk 'm!

  • Jboy1991
  • Registratie: September 2012
  • Laatst online: 19:03
ParadoxMedia schreef op vrijdag 12 mei 2017 @ 13:19:
Er is een groot verschil tussen JAVA en JAVASCRIPT. Alhoewel de naam enige gelijkenissen vertoont, doet de taal dat zelf niet echt. JAVA staat tegenwoordig in alle browsers uit, javascript daarintegen is "essentieel" voor zowat elke website en staat daardoor bij meer dan 99% van de mensen gewoon aan.

Javascript en PHP zijn een prima combinatie. Echter het gaat er wel om wat je doet met data van de gebruiker, deze moet je ten allen tijden valideren op malifide input.

Qua refreshen van data: dat ligt puur aan je eigen wensen, kijk daarvoor eens naar websockets.
Ah Bedankt voor de opheldering. Ik ging er vanuit dat javascript en java het zelfde waren excuus.

Op dit moment doe ik het volgende:
Form post doorgestuurd dmv ajax naar php action file. deze php action file controleert de inhoudt van de post en poept vervolgens een json string terug.

Aan de hand van die json string onderneemt de jscript actie (modal sluiten/openen , pagina herladen of een bericht/alert openen). Na mijn idee behoorlijk veilig aangezien jscript zelf de data alleen clientside aanpast.

Acties:
  • 0 Henk 'm!

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 18:06
Je haalt nu 2 dingen door elkaar:
- Gebruikers die Javascript uit hebben staan (vanwege security, privacy etc)
- Of jouw javascript veilig is.

Het eerste kan je niet zoveel aan doen. Als iemand Javascript uitzet, werkt de javascript op je site niet meer. Als je iets client-side (dus met javascript) valideert of popups opent/sluit, zal dat niet werken. Maar dat is inderdaad < 1% (afhankelijk van doelgroep waarschijnlijk). Dus je kan je site bouwen zodat hij werkt zonder Javascript, maar veel sites gaan er vanuit dat het gewoon aan staat.

Of het verder veilig is; Javascript draait in de browser van de gebruiker, dus je kan per definitie geen input vertrouwen van de gebruiker. Je zal dus altijd server-side (dus met PHP) de data moeten controleren/valideren.

Wat betreft de veiligheid voor je gebruiker, moet je zorgen dat je website veilig is, bijvoorbeeld geen XSS, maar dat heeft niet per definitie iets te maken met Javascript, vaker aan de kant van PHP. Zie bijv. http://www.phptherightway.com/#security

Acties:
  • 0 Henk 'm!

  • Jboy1991
  • Registratie: September 2012
  • Laatst online: 19:03
Barryvdh schreef op vrijdag 12 mei 2017 @ 13:45:
Je haalt nu 2 dingen door elkaar:
- Gebruikers die Javascript uit hebben staan (vanwege security, privacy etc)
- Of jouw javascript veilig is.

Het eerste kan je niet zoveel aan doen. Als iemand Javascript uitzet, werkt de javascript op je site niet meer. Als je iets client-side (dus met javascript) valideert of popups opent/sluit, zal dat niet werken. Maar dat is inderdaad < 1% (afhankelijk van doelgroep waarschijnlijk). Dus je kan je site bouwen zodat hij werkt zonder Javascript, maar veel sites gaan er vanuit dat het gewoon aan staat.

Of het verder veilig is; Javascript draait in de browser van de gebruiker, dus je kan per definitie geen input vertrouwen van de gebruiker. Je zal dus altijd server-side (dus met PHP) de data moeten controleren/valideren.

Wat betreft de veiligheid voor je gebruiker, moet je zorgen dat je website veilig is, bijvoorbeeld geen XSS, maar dat heeft niet per definitie iets te maken met Javascript, vaker aan de kant van PHP. Zie bijv. http://www.phptherightway.com/#security
Dus jscript is opzichzelf veilig. Maar de onveiligheid komt bij de php verwerking vandaan

Mooie artikel. Eind van de dag even bestuderen

Acties:
  • 0 Henk 'm!

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 18:06
Jboy1991 schreef op vrijdag 12 mei 2017 @ 14:20:
[...]

Dus jscript is opzichzelf veilig. Maar de onveiligheid komt bij de php verwerking vandaan

Mooie artikel. Eind van de dag even bestuderen
Dat ligt er dus aan wat je met veilig bedoeld. Javascript op zichzelf is voor de gebruiker niet zo onveilig (als jij niks raars programmeert), maar als er scripts ingeladen worden via externe sites (of gehackt, of bijv. advertentie netwerken), kan Javascript gebruikt worden om gegevens te verzamelen, door te sturen naar andere sites of te besmetten met virussen ed. Daarom zetten sommigen dat uit voor niet-vertrouwde websites.

Acties:
  • 0 Henk 'm!

  • MdBruin
  • Registratie: Maart 2011
  • Laatst online: 12-05-2024
Jboy1991 schreef op vrijdag 12 mei 2017 @ 14:20:
[...]

Dus jscript is opzichzelf veilig. Maar de onveiligheid komt bij de php verwerking vandaan

Mooie artikel. Eind van de dag even bestuderen
Neem je begrijpt het verkeerd. Jscript en php zijn beide relatief veilig te noemen. Jij bepaalt wat het script zou moeten doen. Waar het om gaat is de data welke door een gebruiker terug wordt verstuurd. Deze kan door de gebruiker worden aangepast waardoor er verkeerde dingen kunnen worden uitgevoerd. Bijvoorbeeld een sql commando drop user tabel of zelfs alle tabels.

De data wil je dus server side valideren en niet cliënt side. PHP is hiervoor dus erg geschikt.

Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
offtopic:
Mensen, JScript is niet hetzelfde als JavaScript maar beiden zijn wel gebaseerd op ECMAScript.
Als je muggenzift over Java, moet je dat ook doen over JScript.


Zorg dat je website het doet zonder JavaScript (SEO vriendelijk) en verbeter dan de UX met XMLHTTPRequest v2.

[ Voor 27% gewijzigd door DJMaze op 12-05-2017 16:44 ]

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • Jboy1991
  • Registratie: September 2012
  • Laatst online: 19:03
DJMaze schreef op vrijdag 12 mei 2017 @ 16:42:
offtopic:
Mensen, JScript is niet hetzelfde als JavaScript maar beiden zijn wel gebaseerd op ECMAScript.
Als je muggenzift over Java, moet je dat ook doen over JScript.


Zorg dat je website het doet zonder JavaScript (SEO vriendelijk) en verbeter dan de UX met XMLHTTPRequest v2.
Maar als je het zonder javascript moet doen vervallen aardig wat leuke/handige functies Waaronder geen pagina reload tijdens een input bijv.

Acties:
  • +1 Henk 'm!

  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 20:32
Jboy1991 schreef op vrijdag 12 mei 2017 @ 19:30:
[...]

Maar als je het zonder javascript moet doen vervallen aardig wat leuke/handige functies Waaronder geen pagina reload tijdens een input bijv.
Je lees DJMaze's post verkeerd. Hij zegt niet dat je het zonder javascript moet doen, maar dat het moet werken zonder javascript. Dat noem je progressive enhancement: Je maakt eerst een versie die zonder javascript werkt, en dan voeg je daar je javascript aan toe op zo'n manier dat de eerste versie blijft werken voor mensen die geen javascript aan hebben staan.

Verder schrijf je in je topicstart:
Op dit moment wil ik het zo gebruiksvriendelijk maken. Dus niet complete paginas herladen bij het bijvoorbeeld versturen van data etc.
Let op dat complete pagina's herladen bij versturen van data, waar je het over hebt, niet per se ongebruikersvriendelijk is. Het laden van de tweede pagina kan misschien even duren, maar het doet wat de gebruiker verwacht en de gebruiker kan de terug-knop van de browser gebruiken om bijvoorbeeld te zien wat er ingevuld was. Doe je dit met js en ajax, dan werkt die terugknop ineens niet meer en dus - ook al was de pagina misschien sneller - vind ik dat niet gebruikersvriendelijk. Nou kan je dit wel weer oplossen met de Javascript History API maar dan ben je dus in feite standaard browsergedrag aan het nabouwen.

Hetzelfde geldt met delen van de pagina veranderen na klik op een menu item bijvoorbeeld. Mensen verwachten op de terug en forward knop te kunnen drukken, mensen verwachten een pagina te kunnen bookmarken, én in dat geval komt er ook nog SEO bij: Google wil ook op de pagina /contact contactgegevens vinden. Je maakt het jezelf dus nodeloos moeilijk door alles met JavaScript te willen doen.

Misschien kan je voor jezelf de stelregel aanhouden om enkel alles wat niet al door de browser wordt aangeboden met JavaScript te doen?

Overigens is dit alles enkel ter inspiratie/overdenking, het is jouw stukje van het internet dus je mag zelf weten hoe/wat je wel/niet doet. :)

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


Acties:
  • 0 Henk 'm!

  • Jboy1991
  • Registratie: September 2012
  • Laatst online: 19:03
Ramon schreef op zaterdag 13 mei 2017 @ 09:34:
[...]

Je lees DJMaze's post verkeerd. Hij zegt niet dat je het zonder javascript moet doen, maar dat het moet werken zonder javascript. Dat noem je progressive enhancement: Je maakt eerst een versie die zonder javascript werkt, en dan voeg je daar je javascript aan toe op zo'n manier dat de eerste versie blijft werken voor mensen die geen javascript aan hebben staan.

Verder schrijf je in je topicstart:

[...]

Let op dat complete pagina's herladen bij versturen van data, waar je het over hebt, niet per se ongebruikersvriendelijk is. Het laden van de tweede pagina kan misschien even duren, maar het doet wat de gebruiker verwacht en de gebruiker kan de terug-knop van de browser gebruiken om bijvoorbeeld te zien wat er ingevuld was. Doe je dit met js en ajax, dan werkt die terugknop ineens niet meer en dus - ook al was de pagina misschien sneller - vind ik dat niet gebruikersvriendelijk. Nou kan je dit wel weer oplossen met de Javascript History API maar dan ben je dus in feite standaard browsergedrag aan het nabouwen.

Hetzelfde geldt met delen van de pagina veranderen na klik op een menu item bijvoorbeeld. Mensen verwachten op de terug en forward knop te kunnen drukken, mensen verwachten een pagina te kunnen bookmarken, én in dat geval komt er ook nog SEO bij: Google wil ook op de pagina /contact contactgegevens vinden. Je maakt het jezelf dus nodeloos moeilijk door alles met JavaScript te willen doen.

Misschien kan je voor jezelf de stelregel aanhouden om enkel alles wat niet al door de browser wordt aangeboden met JavaScript te doen?

Overigens is dit alles enkel ter inspiratie/overdenking, het is jouw stukje van het internet dus je mag zelf weten hoe/wat je wel/niet doet. :)
Ik vind de informatie die ik hier krijg juist enorm handig. Ik krijg allemaal tips waar ik dus totaal geen rekening mee heb gehouden. Ik ging er vanuit dat juist om alles via ajax te doen dat het leuker/sneller etc lijkt. (soort facebook idee met plaatsen van reacties bijv).

Maar ik kom er steeds meer achter dat het juist onnodig ingewikkeld is voor gebruiker en voor zoekmachines zoals jullie zelf al aangeven. Dus ik denk dat ik het inderdaad aan het eind pas moet toevoegen wat via ajax kan

Acties:
  • 0 Henk 'm!

  • b2vjfvj75gjx7
  • Registratie: Maart 2009
  • Niet online
Qua SEO is het wel mogelijk tegenwoordig, om je hele site met AJAX te vullen - of dit qua UX / UA / design principles handig is, is een 2e...

Rond 2009 kon Google AJAX al gewoon interpreteren;

https://developers.google...-crawling/docs/learn-more

Maar rond 2015 is die work-a-round meer nodig en doen ze het out-of-the-box;

https://webmasters.google...ajax-crawling-scheme.html

Acties:
  • 0 Henk 'm!

Verwijderd

Misschien is een Single Page Application iets voor je?
Kijk eens naar Angular / Angular 2 / Ember / Durandal / Backbone.

Ik persoonlijk vind Angular prettig werken, maar ben ook mensen tegen gekomen die Ember helemaal het einde vonden.

Acties:
  • 0 Henk 'm!

  • Jboy1991
  • Registratie: September 2012
  • Laatst online: 19:03
Verwijderd schreef op zaterdag 13 mei 2017 @ 17:17:
Misschien is een Single Page Application iets voor je?
Kijk eens naar Angular / Angular 2 / Ember / Durandal / Backbone.

Ik persoonlijk vind Angular prettig werken, maar ben ook mensen tegen gekomen die Ember helemaal het einde vonden.
Ikzelf gebruik al Bootstrap met Jquery. Denk dat dit wel voldoende is qua framework

Acties:
  • 0 Henk 'm!

  • Jboy1991
  • Registratie: September 2012
  • Laatst online: 19:03
b2vjfvj75gjx7 schreef op zaterdag 13 mei 2017 @ 12:26:
Qua SEO is het wel mogelijk tegenwoordig, om je hele site met AJAX te vullen - of dit qua UX / UA / design principles handig is, is een 2e...

Rond 2009 kon Google AJAX al gewoon interpreteren;

https://developers.google...-crawling/docs/learn-more

Maar rond 2015 is die work-a-round meer nodig en doen ze het out-of-the-box;

https://webmasters.google...ajax-crawling-scheme.html
Maar in mijn geval gaat het niet om het vullen van de pagina. Ik heb tot nu toe elke POST via ajax lopen. Dit omdat je dan mooi een error afhandeling boven de submit/form kan plaatsen en de action file gescheiden houdt van de pagina (weer wat overzichtelijker voor mij). Of zijn hier ook andere manieren voor?

Acties:
  • 0 Henk 'm!

  • EngineerCoding
  • Registratie: Oktober 2015
  • Laatst online: 31-12-2023
Je kan met PHP iets conditioneel laten renderen op de pagina, bijvoorbeeld om te melden dat gebruikersnaam/wachtwoord verkeerd is (offtopic: altijd in combinaties praten, nooit zeggen of de gebruikersnaam of wachtwoord verkeerd is!). JavaScript is dan leuk voor het dynamische element waarbij er geen page reload is.

Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Jboy1991 schreef op zaterdag 13 mei 2017 @ 18:11:
[...]

Ikzelf gebruik al Bootstrap met Jquery. Denk dat dit wel voldoende is qua framework
Dat is niet hetzelfde als wat er genoemd werd. Kijk daar eens goed naar, dan gaat er een wereld voor je open.
Een iets makkelijker framework met dezelfde principes is vue.js

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router

Pagina: 1