J'utilise Laravel 5.4. J'ai un formulaire où je prends quelques entrées de l'utilisateur. Les variables de formulaire sont directement insérées dans la base de données. Je veux m'assurer que l'assuré n'entre rien dans la base de données. J'ai entendu parler de quelque chose de SQL Injection mais je n'en sais pas grand-chose.Comment empêcher l'injection SQL dans Laravel 5.4
Ceci est ma fonction.
public function insert_data(Request $request)
{
$company_details_data = ['job_id' => $maxID,
'company_id' => $company_id,
'job_title' => ucwords($request>input('job_title')),
'vacancy_no' => $request->input('vacancy_no'),
'category_id' => $request->input('category_id'),
'job_type_id' => $request->input('job_type_id'),
'city_id' => $request->input('city_id'),
'travel_required' => $request->input('travel_required'),
'other_locations' => ucwords($request->input('other_locations')),
'no_vacancy' => $request->input('no_vacancy'),
'job_salary' => $request->input('job_salary'),
'date_expiry' => $request->input('date_expiry'),
'job_details' => $request->input('job_details'),
'date_posted' => date('Y-m-d'),
'qualification_required' => $request->input('qualification_required'),
'experience_required' => $request->input('experience_required'),
'skills_required' => $request->input('skills_required'),
'apply_guidance' => $request->input('apply_guidance'),
'duty_responsibilities' => $request->input('duty_responsibilities')
];
General_model::createrecord($company_details_data,'job_details');
}
C'est le createRecord() dans mon modèle:
public static function createrecord($data,$tbl)
{
return DB::table($tbl)->insert($data);
}
Je veux utiliser htmlspecialchars ici, mais je me sers d'un éditeur de texte riche en ma forme. Si j'utilise htmlspecialchars, cela changera aussi les balises non nuisibles comme, < p>, < br>, etc. S'il vous plaît aider
Qu'est-ce que la méthode 'createRecord()' faire? On dirait que vous essayez de reproduire une bonne partie de ce qu'Eloquent va faire pour vous. Je vous suggère de consulter la [Documentation éloquente] (https://laravel.com/docs/5.4/queries) – jfadich
c'est la fonction createrecord: return DB :: table ($ tbl) -> insert ($ data); –
Vous devez utiliser Eloquent et créer un modèle pour chaque table. Ensuite, lorsque vous utilisez la méthode 'create', vous utiliserez des requêtes paramétrées pour vous protéger contre l'injection SQL. – jfadich