is data die via ajax naar een php file gestuurd wordt via de browser manipuleerbaar?
Door
Jack Maessen
op 27-06-2020 13:01
gewijzigd op 27-06-2020 13:02
1.866 views
Voor het maximaal toegestane aantal getypte karakters in een textarea gebruik ik een counter die het aantal getypte karakters weergeeft en de waarde van die counter stuur ik via ajax naar een php file die dit serverside checkt.
Dit is de funcite van de counter:
// counting characters textarea
function CountCharacters() {
var body = tinymce.activeEditor.getBody();
var content = tinymce.trim(body.innerText || body.textContent);
return content.length;
};
In de ajax stuur ik hem op deze manier naar de php file:
Mijn vraag is nu: is het mogelijk dat iemand (via de browserinspector) de waarde van de javascript var var countchars kan manipuleren zodat ajax een ander aantal karkaters naar de php file stuurt dan dat er in werkelijkheid getypt is in de textarea? en zodoende dus een comment kan plaatsen dat boven het toegestane aantal karakters ligt?
Het probleem zit hem nie tin plain text. 2000 karakters gekopieerd en geplakt geven allebei 2000 karakters aan. Maar als ik de emoticons van de tinymce ga gebruiken, of bold lines maak, underlines en italic teksten, dan gaat er een verschil optreden
Tja, als een politeman een lasergun op je richt en zegt dat ie 55 aflas op zijn apparaat en jouw snelheidsmeter geeft 50 aan, heb je hetzelfde probleem. Twee verschillende meetinstrumenten. Altijd misère... :)
Okay. Er kan in ieder geval een verschil zijn tussen de lengte van de zichtbare, leesbare tekst en de (onzichtbare) opmaak(regels) die tinyMCE hier vervolgens aan toevoegt. Maar het zou niet nodig hoeven zijn om hier allemaal reguliere expressies op los te laten. En als je dan een controle hierop aan beide zijden op verschillende wijzen implementeert dan is het natuurlijk niet zo verwonderlijk dat de waarden afwijken.
Laten we hier eens anders naar kijken.
Wat is op dit moment de reden om de invoer te limiteren? Heeft dit echt te maken met fysieke beperkingen zoals bijvoorbeeld opslagruimte in een tabelkolom, of heeft dit een andere reden? Als er in wezen niet zo'n limitering is, dan zou je de textuele delen als *indicatie* kunnen nemen voor de lengte?
Nee ik gebruik dit script niet voor mezelf. Dit is een blogsystem dat ik op Github wil plaatsen. Maar als de gebruiker een limitet op de input wil zetten, wil ik hem daartoe de mogelijkheid geven
Jammer dat je nog geen antwoord op mijn vraag geeft. Maar zowel client-side als serverside moet je gewoon het aantal karakters controleren. Een serversidecheck is ook niet iets waar je op hoeft te besparen, want dit is toch een onwaarneembare nanoseconde of wat.....
Als het aantal ergens mank loopt, dient te worden uitgezocht waar het verschil in zit.