Будучи новичком, я думал, что понимаю, что делать с точки зрения безопасности, но мне все еще нужна помощь.
У меня есть форма, которая учитывает множество деталей камеры. Например, имя камеры и ряд других параметров, которые являются частью HTML select
. Я обрабатываю это в php:
$db = &JFactory::getDBO();
if (isset($_POST['addcamera'])) {
//process changes to camera options
if ( !empty($_POST['camera_type']) && !empty($_POST['camera_status']) && !empty($_POST['camera_name']) && !empty($_POST['camera_quality']) && !empty($_POST['email_notice']) )
{
$add_name = JRequest::getVar('camera_name', 'Default Camera', 'post', 'STRING');
$add_quality = JRequest::getVar('camera_quality', '', 'post', 'STRING');
$add_motion_detection = JRequest::getVar('camera_status', '', 'post', 'STRING');
$add_email_notice = JRequest::getVar('email_notice', '', 'post', 'STRING');
$camera_type = JRequest::getVar('camera_type', '', 'post', 'STRING');
//and so on...
//then I add to DB
$query_insert_camera = "INSERT INTO #__cameras (camera_status, camera_name, camera_quality, email_notice, camera_type, camera_hash, camera_sensitivity, user_id) VALUES ('".$add_motion_detection."','".$add_name."','".$add_quality."','".$add_email_notice."','".$camera_type."','".$add_camera_hash."','".$add_sensitivity."','".$user->id."')";
$db->setQuery($query_insert_camera);
$db->query();
Я использую проверку jquery для своих форм и со стороны php, поскольку я использую Joomla. Я использую getVar: http://docs.joomla.org/Retrieving_and_Filtering_GET_and_POST_requests_with_JRequest::getVar. Я считаю, что я защищаю себя от атак XSS и SQL, но могу кто-то подтвердит, что это правильный подход?
Что-нибудь еще мне не хватает?