作为一个新手,我认为我从安全的角度理解要做什么,但我仍然需要一些帮助。php安全与Joomla
我有一个窗体,需要了解相机的详细信息。如相机名称和一些其他选项,它们是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的攻击,但是有人可以证实这是正确的做法吗?
还有什么我失踪?
注射:HTTP://en.wikipedia.org/wiki/SQL_injection,手册:HTTP://docs.joomla.org/Accessing_the_database_using_JDatabase - “准备查询”标题。 – 2012-03-28 18:32:09