I have functions, first: JS:
$(document).ready(function() {
//dodavanje novog racuna
$(function() {
$('#addFieldForm').submit(function(e) {
e.preventDefault();
if ( $(this).parsley('validate') ) {
$.ajax({
url: "insertRacun.php",
type: "POST",
async: true,
data: { sifra:sifra,brojracuna:$("#brojracuna").val(),sufiks:$("#sufiks").val(),kupac:$("#kupac").val(),adresa:$("#adresa").val(),grad:$("#grad").val(),pib:$("#pib").val(),total:$("#total").text(),valuta:$("#valuta").val(),nacin:$("#nacin").val(),datum:$("#datum").val(),rok:$("#rok").val(),isporuka:$("#isporuka").val(),napomena:$("#napomena").val(),interna:$("#interna").val(),ponovi:$("#ponovi").val()},
dataType: "html",
etc...
php:
try {
$STH = $db->prepare("INSERT INTO racuni (br, sufiks, kupac, adresa, grad, pib, total,valuta,nacin,datum,rok,isporuka,napomene,interne, user_id,sifra) VALUES (:0,:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15)");
$STH->bindParam(':0', $_POST['brojracuna']);
$sufiks=$_POST['sufiks'];
$STH->bindParam(':1', $sufiks);
$STH->bindParam(':2', $_POST['kupac']);
$STH->bindParam(':3', $_POST['adresa']);
etc....
and when I try to add:
Luciansdasadsda"><script>alert(1)</script>
then I get in database the same value.
So How I can prevent XSS and SQL injection in my code? ALso how to prevent Denial of service (causing excessive amounts of rows to be created)?