Во-первых, вы должны рассмотреть возможность разделения различных частей вашего приложения.Наличие общего файла, который выполняет все остальные задачи, связанные с тележками, нарушает все виды принципов разработки программного обеспечения.
Во-вторых, первой уязвимостью является внедрение SQL.Вы должны НИКОГДА просто объединить ввод в ваш SQL.
Предположим, я отправил 1; TRUNCATE TABLE cart;
.Тогда ваш SQL будет выглядеть так:
select itemid from cart where cartid=1; TRUNCATE TABLE cart;
, который сначала выбирает соответствующий элемент, а затем разрушает вашу базу данных.
Вы должны написать что-то вроде этого:
$item = $_COOKIE['cart'];
$item = preg_replace_all("['\"]", "\\$1", $item);
Чтобы не обновлять , вы можете разместить ссылку на своей странице.Что-то вроде <a href="javascript:void(0);" onclick="getAllCartItems();">Refresh</a>
С точки зрения безопасности всегда будет полезно представить уровень базы данных, связанный только с вашими данными, независимо от вашей бизнес-логики, а затем добавить уровень обслуживания, зависящий от уровня базы данных, которыйпредоставит средства для выполнения действий бизнес-уровня.
Вы также должны принять во внимание рекомендацию @PPvG и - используя Apache mod_rewrite или другие подобные средства - сделать ваши URL более значимыми.
Другойпримечание: попробуйте инкапсулировать ваши данные в формате JSON или XML.Я бы рекомендовал использовать json_encode();
на стороне сервера и JSON.parse();
на стороне клиента.Это обеспечит безопасную доставку.