作爲一個新手,我認爲我從安全的角度理解要做什麼,但我仍然需要一些幫助。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