JavaScript connecteren met SQL via PHP
Ik heb JavaScript code die een transactie naar de blockchain stuurt via een browser extensie. Hoe dat exact gebeurt is niet zo belangrijk voor mijn vraag.
Nu zou ik ook graag de transactiedata in mijn eigen SQL database opslaan. Echter vind ik dit niet zo evident om van JavaScript, wat een client side taal is, naar een server side taal als PHP over te gaan. Momenteel is er een callback functie die de gebruiker naar purchase.php stuurt als de transactie is afgerond. Echter hoe kan ik bijkomende informatie over de transactie meesturen naar die pagina?
Of bestaat er een betere manier om deze transactiedata in een SQL database te krijgen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script>
$("#send_1").click(function () {
console.log("click");
hive_keychain.requestCustomJson(
'name',
'sm_token_transfer',
'active',
'{"to":"name2","qty":95,"token":"DEC","type":"withdraw","app":"something"}',
function (response) {
window.location.replace("purchase.php");
}
);
});
</script>
$("#send_1").click(function () {
console.log("click");
hive_keychain.requestCustomJson(
'name',
'sm_token_transfer',
'active',
'{"to":"name2","qty":95,"token":"DEC","type":"withdraw","app":"something"}',
function (response) {
window.location.replace("purchase.php");
}
);
});
</script>
Nu zou ik ook graag de transactiedata in mijn eigen SQL database opslaan. Echter vind ik dit niet zo evident om van JavaScript, wat een client side taal is, naar een server side taal als PHP over te gaan. Momenteel is er een callback functie die de gebruiker naar purchase.php stuurt als de transactie is afgerond. Echter hoe kan ik bijkomende informatie over de transactie meesturen naar die pagina?
Of bestaat er een betere manier om deze transactiedata in een SQL database te krijgen?
Gewijzigd op 25/09/2021 00:06:30 door Louis Deconinck
Kan je dit niet beter met AJAX doen?
https://www.w3schools.com/jquery/ajax_ajax.asp
Stuur de data bij voorkeur via POST (of GET als je dat wilt doen) naar een purchase.php script.
Waar dat script alle $_POST data in een INSERT-query verwerkt, zodat het in de database komt.
Enne, vergeet niet te escapen tegen SQL-injection ;-)
https://www.w3schools.com/jquery/ajax_ajax.asp
Stuur de data bij voorkeur via POST (of GET als je dat wilt doen) naar een purchase.php script.
Waar dat script alle $_POST data in een INSERT-query verwerkt, zodat het in de database komt.
Enne, vergeet niet te escapen tegen SQL-injection ;-)
Dat is een optie die ik eens zal bekijken. Vraag mij echter af of het wel mogelijks is om dit veilig te bouwen... Kan men geen valse variabelen via POST versturen en deze in de database opnemen.
Dat is iets wat je moet beveiligen. Ik neem aan dat er ergens iets van authenticatie in zit?
Of anders kan je een check doen met een sessie die je aanmaakt op je index.php, en die ook bekend moet zijn op je purchase.php script.
Of anders kan je een check doen met een sessie die je aanmaakt op je index.php, en die ook bekend moet zijn op je purchase.php script.
Mobile code is per definitie onveilig, net zoals alles in de browser onveilig is. In theorie kan iedereen op F12 duwen en via de developer tools van een browser zelf javascript requests faken. En kan iedereen HTTP-requests faken met tools als cUrl.
Het probleem is dat je 'de transactiedata' van 'de blockchain' (of wat het ook is) wilt opslaan in een tweede JS request, dat relatief eenvoudig te hacken is. De browser kan geen garanties geven.
Je moet in feite van de twee HTTP-requests een veilige transactie maken. Dat moet server-side. Dus je moet of de request naar de blockchain plugin zo ver krijgen dat het ook een sein stuurt naar jouw server (kan via PHP), of het moet andersom, dus eerst naar jouw PHP script dat het verzoek doorstuurt naar de blockchain.
Het probleem is dat je 'de transactiedata' van 'de blockchain' (of wat het ook is) wilt opslaan in een tweede JS request, dat relatief eenvoudig te hacken is. De browser kan geen garanties geven.
Je moet in feite van de twee HTTP-requests een veilige transactie maken. Dat moet server-side. Dus je moet of de request naar de blockchain plugin zo ver krijgen dat het ook een sein stuurt naar jouw server (kan via PHP), of het moet andersom, dus eerst naar jouw PHP script dat het verzoek doorstuurt naar de blockchain.
Spamkick, slotje



