Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Σε ορισμένα tutorial αναφέρετε στο χωρίς κώδικα prevent του sql injection.

Σε άλλα tutorial συμπεριλαμβάνουν στον κώδικα και το prevent sql injection.

 

Τελικά η Mysqli κάνει από μόνο της την αποφυγή sql injection ή χρειάζεται και κώδικας γιαυτό ;

Δημοσ.

Καλύτερες πιθανότητες να αποφεύγεις sql injections έχεις αν καταλάβεις πως γίνονται και προσπαθήσεις να λειτουργήσεις αντίστροφα, πρακτικά η default λύση είναι να χρησιμοποιείς πάντα prepared statements όπου πρόκειται να χρησιμοποιηθεί μεταβλητή που δεν είναι 1000% ασφαλής.

 

Η mysqli / pdo είναι εργαλεία που πρέπει να μάθεις να χρησιμοποιείς σωστά ανάλογα με την κάθε περίπτωση.

  • Like 2
Δημοσ.

Θα μιλήσω για την SQLite,

 

υπάρχουν 2 τρόποι για να επεξεργαστείς δεδομένα.

  1. εκτέλεση raw sql κώδικα
  2. χρήση ειδικών συναρτήσεων

Το 1 δεν παρέχει προστασία από SQLInjection

Το 2 ουσιαστικά δημιουργήθηκε για να αποτρέψει το SQLInjection

 

Με την 1η μέθοδο μπορείς να κάνεις πιο εύκολα ερωτήματα (Δλδ ότι πρέπει για newbies) και σε πολύ πολύπλοκα ερωτήματα (με joins πχ) λογικά το 1 είναι μονόδρομος. 

 

 

Άρα ψάξε για κάτι αντίστοιχο

  • Like 1
Δημοσ.

Οταν λες sqli να φανταστω μιλας για mysqli_query. Οχι δεν το κανει, δεν γινεται να το κανει. Το injection θελει νοημοσυνη για να το καταλαβεις, δεν γινεται να το καταλαβεις μηχανικα.

 

Τα tuts δεν ξερω τι λενε, αλλα στο μανουαλ ειναι ξεκαθαρο http://php.net/manual/en/mysqli.query.php 

query
The query string.

Data inside the query should be properly escaped.

Τελος, δεν καταλαβαινω γιατι οι περισσοτεροι προτιματε να φτιαχνετε raw query αντι να το φτιαχνετε με prepare/bind api. 

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...