{"id":2683,"date":"2010-05-19T10:00:01","date_gmt":"2010-05-19T08:00:01","guid":{"rendered":"http:\/\/localhost\/helpcentre\/?p=2683"},"modified":"2022-11-15T13:38:45","modified_gmt":"2022-11-15T11:38:45","slug":"secure-your-database","status":"publish","type":"post","link":"https:\/\/xneelo.co.za\/help-centre\/website\/secure-your-database\/","title":{"rendered":"How to secure your database"},"content":{"rendered":"<p>There are scenarios where databases can become vulnerable to hackers, for example, taking raw data and inserting it into a database table creates a security vulnerability called <strong>SQL<\/strong><b>\u00a0injection<\/b>. These situations can be prevented by securing scripts and database statements.<\/p>\n<p><span style=\"font-weight: 400;\">SQL<\/span> injection is done without the administrator\u2019s knowledge or permission by inserting a database statement into the database. An example of how this is done; when requesting user input i.e. \u2018customer id\u2019, instead of providing this information the hacker inserts a database statement that is then executed without you being aware.<\/p>\n<p><b>Example:<\/b><\/p>\n<p>Here is an example of a string displaying the difference between regular interaction and <span style=\"font-weight: 400;\">SQL<\/span> injection; this allows the hacker to gain access to records:<\/p>\n<p>The user is requested to provide their customer pin, this is interpreted into a SELECT statement providing the necessary information.<\/p>\n<div class=\"codeblock\"><code><code><span style=\"color: #000000;\"><br \/>\n<span style=\"color: #ff8000;\">\/\/ regular interaction customer pin<br \/>\n<\/span><span style=\"color: #0000bb;\">$pin <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">\"12345\"<\/span><span style=\"color: #007700;\">;<br \/>\n<\/span><span style=\"color: #0000bb;\">$query <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">\"SELECT * FROM customers WHERE pin = '<\/span><span style=\"color: #0000bb;\">$number<\/span><span style=\"color: #dd0000;\">\"<\/span><span style=\"color: #007700;\">;<br \/>\necho <\/span><span style=\"color: #dd0000;\">\"Normal: \" <\/span><span style=\"color: #007700;\">. <\/span><span style=\"color: #0000bb;\">$query <\/span><span style=\"color: #007700;\">. <\/span><span style=\"color: #dd0000;\">\"&lt;br \/&gt;\"<\/span><span style=\"color: #007700;\">;<\/span><\/span><\/code><\/code><code><code><span style=\"color: #000000;\"><span style=\"color: #ff8000;\">\/\/ SQL Injection<br \/>\n<\/span><span style=\"color: #0000bb;\">$pin_bad <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">\"' OR 1'\"<\/span><span style=\"color: #007700;\">;<\/span><\/span><\/code><\/code><code><code><span style=\"color: #000000;\"><span style=\"color: #ff8000;\">\/\/ MySQL query builder \u2013 not very secure<br \/>\n<\/span><span style=\"color: #0000bb;\">$query_bad <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">\"SELECT * FROM customers WHERE pin = '<\/span><span style=\"color: #0000bb;\">$pin_bad<\/span><span style=\"color: #dd0000;\">'\"<\/span><span style=\"color: #007700;\">;<\/span><\/span><\/code><\/code><code><span style=\"color: #000000;\"><span style=\"color: #ff8000;\">\/\/ show the query with injection<br \/>\n<\/span><span style=\"color: #007700;\">echo <\/span><span style=\"color: #dd0000;\">\"Injection: \" <\/span><span style=\"color: #007700;\">. <\/span><span style=\"color: #0000bb;\">$query_bad<\/span><span style=\"color: #007700;\">; <\/span><br \/>\n<\/span><br \/>\n<\/code><\/p>\n<\/div>\n<p><b>Display:<\/b><\/p>\n<div class=\"codeblock\"><code><span style=\"color: #000000;\"><br \/>\n<span style=\"color: #0000bb;\">Normal<\/span><span style=\"color: #007700;\">: <\/span><span style=\"color: #0000bb;\">SELECT <\/span><span style=\"color: #007700;\">* <\/span><span style=\"color: #0000bb;\">FROM customers WHERE pin <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">'12345'<br \/>\n<\/span><span style=\"color: #0000bb;\">Injection<\/span><span style=\"color: #007700;\">: <\/span><span style=\"color: #0000bb;\">SELECT <\/span><span style=\"color: #007700;\">* <\/span><span style=\"color: #0000bb;\">FROM customers WHERE pin <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">'' <\/span><span style=\"color: #007700;\">OR <\/span><span style=\"color: #0000bb;\">1<\/span><span style=\"color: #dd0000;\">'' <\/span><br \/>\n<\/span><br \/>\n<\/code><\/div>\n<p>The regular interaction does not create a problem, given that the database statement will choose information from customers that have a pin equivalent to 12345.<\/p>\n<p>The <span style=\"font-weight: 400;\">SQL<\/span> injection caused the query to behave in a way that was not intended via a single quote (\u2019) the string part of the database query was brought to an end.<\/p>\n<div class=\"codeblock\"><code><span style=\"color: #000000;\"><br \/>\n<span style=\"color: #0000bb;\">pin <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">' '<br \/>\n<\/span><span style=\"color: #007700;\">and <\/span><span style=\"color: #0000bb;\">then added on to our WHERE statement with an <\/span><span style=\"color: #007700;\">OR <\/span><span style=\"color: #0000bb;\">clause of 1 <\/span><span style=\"color: #007700;\">(<\/span><span style=\"color: #0000bb;\">always true<\/span><span style=\"color: #007700;\">).<br \/>\n<\/span><span style=\"color: #0000bb;\">pin <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">' ' <\/span><span style=\"color: #007700;\">OR <\/span><span style=\"color: #0000bb;\">1 <\/span><br \/>\n<\/span><br \/>\n<\/code><\/div>\n<p><b>All<\/b> entries in the \u201ccustomers\u201d table selected as a result of this statement because OR clause of 1 is true.<\/p>\n<p><b>Example 2:<\/b><\/p>\n<p>DELETE statement: Below is an example of where a hacker can remove all information from the \u201ccustomers\u201d table.<\/p>\n<p>$id_evil = \u201c\u2018; DELETE FROM customers WHERE 1 or userid = \u2018\u201c;<\/p>\n<div class=\"codeblock\"><code><code><span style=\"color: #000000;\"><br \/>\n<span style=\"color: #ff8000;\">\/\/ SQL injection to be detected by the MySQL query builder<br \/>\n<\/span><span style=\"color: #0000bb;\">$query_evil <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">\"SELECT * FROM customers WHERE userid = '<\/span><span style=\"color: #0000bb;\">$id_evil<\/span><span style=\"color: #dd0000;\">'\"<\/span><span style=\"color: #007700;\">;<\/span><\/span><\/code><\/code><code><span style=\"color: #000000;\"><span style=\"color: #ff8000;\">\/\/ DELETE statement should form part of the new evil injection query<br \/>\n<\/span><span style=\"color: #007700;\">echo <\/span><span style=\"color: #dd0000;\">\"Injection: \" <\/span><span style=\"color: #007700;\">. <\/span><span style=\"color: #0000bb;\">$query_evil<\/span><span style=\"color: #007700;\">; <\/span><br \/>\n<\/span><br \/>\n<\/code><\/div>\n<p><b>Display:<\/b><\/p>\n<div class=\"codeblock\"><code><span style=\"color: #000000;\"><br \/>\n<span style=\"color: #0000bb;\">SELECT <\/span><span style=\"color: #007700;\">* <\/span><span style=\"color: #0000bb;\">FROM customers WHERE userid <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">' '<\/span><span style=\"color: #007700;\">;<br \/>\n<\/span><span style=\"color: #0000bb;\">DELETE FROM customers WHERE 1 <\/span><span style=\"color: #007700;\">or <\/span><span style=\"color: #0000bb;\">userid <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">' ' <\/span><br \/>\n<\/span><br \/>\n<\/code><\/div>\n<p><b>Prevention:<\/b><\/p>\n<p>PHP has a function to assist in the prevention of this known problem: mysql_real_escape_string. This function acts by replacing the (\u2019) quotes safe alternative i.e. (\u2019) known as an escaped quote.<br \/>\nThe example below demonstrates how the function can be used to prevent example 1 and 2:<\/p>\n<div class=\"codeblock\"><code><code><span style=\"color: #000000;\"><br \/>\n<span style=\"color: #ff8000;\">\/\/Note: To use the function please ensure you are connected to your database.<\/span><\/span><\/code><\/code><code><code><span style=\"color: #000000;\"><span style=\"color: #0000bb;\">$id_bad <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">\"' OR 1'\"<\/span><span style=\"color: #007700;\">;<\/span><\/span><\/code><\/code><code><code><span style=\"color: #000000;\"><span style=\"color: #0000bb;\">$id_bad <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #0000bb;\">mysql_real_escape_string<\/span><span style=\"color: #007700;\">(<\/span><span style=\"color: #0000bb;\">$id_bad<\/span><span style=\"color: #007700;\">);<\/span><\/span><\/code><\/code><code><code><span style=\"color: #000000;\"><span style=\"color: #0000bb;\">$query_bad <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">\"SELECT * FROM customers WHERE userid = '<\/span><span style=\"color: #0000bb;\">$id_bad<\/span><span style=\"color: #dd0000;\">'\"<\/span><span style=\"color: #007700;\">;<br \/>\necho <\/span><span style=\"color: #dd0000;\">\"Escaped Bad Injection: &lt;br \/&gt;\" <\/span><span style=\"color: #007700;\">. <\/span><span style=\"color: #0000bb;\">$query_bad <\/span><span style=\"color: #007700;\">. <\/span><span style=\"color: #dd0000;\">\"&lt;br \/&gt;\"<\/span><span style=\"color: #007700;\">;<\/span><\/span><\/code><\/code><\/p>\n<p><code><code><span style=\"color: #000000;\"><span style=\"color: #0000bb;\">$id_evil <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">\"'; DELETE FROM customers WHERE 1 or userid = '\"<\/span><span style=\"color: #007700;\">;<\/span><\/span><\/code><\/code><\/p>\n<p><code><code><span style=\"color: #000000;\"><span style=\"color: #0000bb;\">$id_evil <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #0000bb;\">mysql_real_escape_string<\/span><span style=\"color: #007700;\">(<\/span><span style=\"color: #0000bb;\">$id_evil<\/span><span style=\"color: #007700;\">);<\/span><\/span><\/code><\/code><\/p>\n<p><code><span style=\"color: #000000;\"><span style=\"color: #0000bb;\">$query_evil <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">\"SELECT * FROM customers WHERE userid = '<\/span><span style=\"color: #0000bb;\">$id_evil<\/span><span style=\"color: #dd0000;\">'\"<\/span><span style=\"color: #007700;\">;<br \/>\necho <\/span><span style=\"color: #dd0000;\">\"Escaped Evil Injection: &lt;br \/&gt;\" <\/span><span style=\"color: #007700;\">. <\/span><span style=\"color: #0000bb;\">$query_evil<\/span><span style=\"color: #007700;\">; <\/span><br \/>\n<\/span><br \/>\n<\/code><\/p>\n<\/div>\n<p><b>Display:<\/b><\/p>\n<div class=\"codeblock\"><code><span style=\"color: #000000;\"><br \/>\n<span style=\"color: #0000bb;\">Escaped Bad Injection<\/span><span style=\"color: #007700;\">:<br \/>\n<\/span><span style=\"color: #0000bb;\">SELECT <\/span><span style=\"color: #007700;\">* <\/span><span style=\"color: #0000bb;\">FROM customers WHERE userid <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">'' <\/span><span style=\"color: #007700;\">OR <\/span><span style=\"color: #0000bb;\">1<\/span><span style=\"color: #dd0000;\">''<br \/>\n<\/span><span style=\"color: #0000bb;\">Escaped Evil Injection<\/span><span style=\"color: #007700;\">:<br \/>\n<\/span><span style=\"color: #0000bb;\">SELECT <\/span><span style=\"color: #007700;\">* <\/span><span style=\"color: #0000bb;\">FROM customers WHERE userid <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">''<\/span><span style=\"color: #007700;\">;<br \/>\n<\/span><span style=\"color: #0000bb;\">DELETE FROM customers WHERE 1 <\/span><span style=\"color: #007700;\">or <\/span><span style=\"color: #0000bb;\">userid <\/span><span style=\"color: #007700;\">= <\/span><span style=\"color: #dd0000;\">'' <\/span><br \/>\n<\/span><br \/>\n<\/code><\/div>\n<p>The <span style=\"font-weight: 400;\">SQL<\/span> injection attack has been prevented i.e. the backslash ensures that the evil quotes have been escaped and the remaining queries will be looking for a nonsensical userid:<\/p>\n<div class=\"codeblock\"><code><span style=\"color: #000000;\"><br \/>\n<span style=\"color: #0000bb;\">Bad<\/span><span style=\"color: #007700;\">: <\/span><span style=\"color: #dd0000;\">' OR 1'<br \/>\n<\/span><span style=\"color: #0000bb;\">Evil<\/span><span style=\"color: #007700;\">: <\/span><span style=\"color: #dd0000;\">'; DELETE FROM customers WHERE 1 or userid = ' <\/span><br \/>\n<\/span><br \/>\n<\/code><\/div>\n","protected":false,"plain":"There are scenarios where databases can become vulnerable to hackers, for example, taking raw data and inserting it into a database table creates a security vulnerability called <strong>SQL<\/strong><b>\u00a0injection<\/b>. These situations can be prevented by securing scripts and database statements.\r\n\r\n<span >SQL<\/span> injection is done without the administrator\u2019s knowledge or permission by inserting a database statement into the database. An example of how this is done; when requesting user input i.e. \u2018customer id\u2019, instead of providing this information the hacker inserts a database statement that is then executed without you being aware.\r\n\r\n<b>Example:<\/b>\r\n\r\nHere is an example of a string displaying the difference between regular interaction and <span >SQL<\/span> injection; this allows the hacker to gain access to records:\r\n\r\nThe user is requested to provide their customer pin, this is interpreted into a SELECT statement providing the necessary information.\r\n<div class=\"codeblock\"><code><code><span >\r\n<span >\/\/ regular interaction customer pin\r\n<\/span><span >$pin <\/span><span >= <\/span><span >\"12345\"<\/span><span >;\r\n<\/span><span >$query <\/span><span >= <\/span><span >\"SELECT * FROM customers WHERE pin = '<\/span><span >$number<\/span><span >\"<\/span><span >;\r\necho <\/span><span >\"Normal: \" <\/span><span >. <\/span><span >$query <\/span><span >. <\/span><span >\"&lt;br \/&gt;\"<\/span><span >;<\/span><\/span><\/code><\/code><code><code><span ><span >\/\/ SQL Injection\r\n<\/span><span >$pin_bad <\/span><span >= <\/span><span >\"' OR 1'\"<\/span><span >;<\/span><\/span><\/code><\/code><code><code><span ><span >\/\/ MySQL query builder \u2013 not very secure\r\n<\/span><span >$query_bad <\/span><span >= <\/span><span >\"SELECT * FROM customers WHERE pin = '<\/span><span >$pin_bad<\/span><span >'\"<\/span><span >;<\/span><\/span><\/code><\/code><code><span ><span >\/\/ show the query with injection\r\n<\/span><span >echo <\/span><span >\"Injection: \" <\/span><span >. <\/span><span >$query_bad<\/span><span >; <\/span>\r\n<\/span>\r\n<\/code>\r\n\r\n<\/div>\r\n<b>Display:<\/b>\r\n<div class=\"codeblock\"><code><span >\r\n<span >Normal<\/span><span >: <\/span><span >SELECT <\/span><span >* <\/span><span >FROM customers WHERE pin <\/span><span >= <\/span><span >'12345'\r\n<\/span><span >Injection<\/span><span >: <\/span><span >SELECT <\/span><span >* <\/span><span >FROM customers WHERE pin <\/span><span >= <\/span><span >'' <\/span><span >OR <\/span><span >1<\/span><span >'' <\/span>\r\n<\/span>\r\n<\/code><\/div>\r\nThe regular interaction does not create a problem, given that the database statement will choose information from customers that have a pin equivalent to 12345.\r\n\r\nThe <span >SQL<\/span> injection caused the query to behave in a way that was not intended via a single quote (\u2019) the string part of the database query was brought to an end.\r\n<div class=\"codeblock\"><code><span >\r\n<span >pin <\/span><span >= <\/span><span >' '\r\n<\/span><span >and <\/span><span >then added on to our WHERE statement with an <\/span><span >OR <\/span><span >clause of 1 <\/span><span >(<\/span><span >always true<\/span><span >).\r\n<\/span><span >pin <\/span><span >= <\/span><span >' ' <\/span><span >OR <\/span><span >1 <\/span>\r\n<\/span>\r\n<\/code><\/div>\r\n<b>All<\/b> entries in the \u201ccustomers\u201d table selected as a result of this statement because OR clause of 1 is true.\r\n\r\n<b>Example 2:<\/b>\r\n\r\nDELETE statement: Below is an example of where a hacker can remove all information from the \u201ccustomers\u201d table.\r\n\r\n$id_evil = \u201c\u2018; DELETE FROM customers WHERE 1 or userid = \u2018\u201c;\r\n<div class=\"codeblock\"><code><code><span >\r\n<span >\/\/ SQL injection to be detected by the MySQL query builder\r\n<\/span><span >$query_evil <\/span><span >= <\/span><span >\"SELECT * FROM customers WHERE userid = '<\/span><span >$id_evil<\/span><span >'\"<\/span><span >;<\/span><\/span><\/code><\/code><code><span ><span >\/\/ DELETE statement should form part of the new evil injection query\r\n<\/span><span >echo <\/span><span >\"Injection: \" <\/span><span >. <\/span><span >$query_evil<\/span><span >; <\/span>\r\n<\/span>\r\n<\/code><\/div>\r\n<b>Display:<\/b>\r\n<div class=\"codeblock\"><code><span >\r\n<span >SELECT <\/span><span >* <\/span><span >FROM customers WHERE userid <\/span><span >= <\/span><span >' '<\/span><span >;\r\n<\/span><span >DELETE FROM customers WHERE 1 <\/span><span >or <\/span><span >userid <\/span><span >= <\/span><span >' ' <\/span>\r\n<\/span>\r\n<\/code><\/div>\r\n<b>Prevention:<\/b>\r\n\r\nPHP has a function to assist in the prevention of this known problem: mysql_real_escape_string. This function acts by replacing the (\u2019) quotes safe alternative i.e. (\u2019) known as an escaped quote.\r\nThe example below demonstrates how the function can be used to prevent example 1 and 2:\r\n<div class=\"codeblock\"><code><code><span >\r\n<span >\/\/Note: To use the function please ensure you are connected to your database.<\/span><\/span><\/code><\/code><code><code><span ><span >$id_bad <\/span><span >= <\/span><span >\"' OR 1'\"<\/span><span >;<\/span><\/span><\/code><\/code><code><code><span ><span >$id_bad <\/span><span >= <\/span><span >mysql_real_escape_string<\/span><span >(<\/span><span >$id_bad<\/span><span >);<\/span><\/span><\/code><\/code><code><code><span ><span >$query_bad <\/span><span >= <\/span><span >\"SELECT * FROM customers WHERE userid = '<\/span><span >$id_bad<\/span><span >'\"<\/span><span >;\r\necho <\/span><span >\"Escaped Bad Injection: &lt;br \/&gt;\" <\/span><span >. <\/span><span >$query_bad <\/span><span >. <\/span><span >\"&lt;br \/&gt;\"<\/span><span >;<\/span><\/span><\/code><\/code>\r\n\r\n<code><code><span ><span >$id_evil <\/span><span >= <\/span><span >\"'; DELETE FROM customers WHERE 1 or userid = '\"<\/span><span >;<\/span><\/span><\/code><\/code>\r\n\r\n<code><code><span ><span >$id_evil <\/span><span >= <\/span><span >mysql_real_escape_string<\/span><span >(<\/span><span >$id_evil<\/span><span >);<\/span><\/span><\/code><\/code>\r\n\r\n<code><span ><span >$query_evil <\/span><span >= <\/span><span >\"SELECT * FROM customers WHERE userid = '<\/span><span >$id_evil<\/span><span >'\"<\/span><span >;\r\necho <\/span><span >\"Escaped Evil Injection: &lt;br \/&gt;\" <\/span><span >. <\/span><span >$query_evil<\/span><span >; <\/span>\r\n<\/span>\r\n<\/code>\r\n\r\n<\/div>\r\n<b>Display:<\/b>\r\n<div class=\"codeblock\"><code><span >\r\n<span >Escaped Bad Injection<\/span><span >:\r\n<\/span><span >SELECT <\/span><span >* <\/span><span >FROM customers WHERE userid <\/span><span >= <\/span><span >'' <\/span><span >OR <\/span><span >1<\/span><span >''\r\n<\/span><span >Escaped Evil Injection<\/span><span >:\r\n<\/span><span >SELECT <\/span><span >* <\/span><span >FROM customers WHERE userid <\/span><span >= <\/span><span >''<\/span><span >;\r\n<\/span><span >DELETE FROM customers WHERE 1 <\/span><span >or <\/span><span >userid <\/span><span >= <\/span><span >'' <\/span>\r\n<\/span>\r\n<\/code><\/div>\r\nThe <span >SQL<\/span> injection attack has been prevented i.e. the backslash ensures that the evil quotes have been escaped and the remaining queries will be looking for a nonsensical userid:\r\n<div class=\"codeblock\"><code><span >\r\n<span >Bad<\/span><span >: <\/span><span >' OR 1'\r\n<\/span><span >Evil<\/span><span >: <\/span><span >'; DELETE FROM customers WHERE 1 or userid = ' <\/span>\r\n<\/span>\r\n<\/code><\/div>"},"excerpt":{"rendered":"<p>There are scenarios where databases can become vulnerable to hackers. These situations can be prevented by securing scripts and MySQL statements.<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"lsx_disable_title":"0","_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","footnotes":""},"categories":[168,180,166,188],"tags":[18336,55],"topics":[10405,10377],"class_list":["post-2683","post","type-post","status-publish","format-standard","hentry","category-managing-website","category-mysql","category-website","category-website-security","tag-sql-injection","tag-website_security","topics-databases","topics-website-security"],"acf":[],"additional_meta":{"category_title":[{"term_id":168,"name":"Managing your Website","slug":"managing-website","term_group":0,"term_taxonomy_id":168,"taxonomy":"category","description":"Managing your Website","parent":166,"count":52,"filter":"raw","term_order":"83","cat_ID":168,"category_count":52,"category_description":"Managing your Website","cat_name":"Managing your Website","category_nicename":"managing-website","category_parent":166},{"term_id":180,"name":"MySQL","slug":"mysql","term_group":0,"term_taxonomy_id":180,"taxonomy":"category","description":"Using MySQL for web applications ","parent":168,"count":9,"filter":"raw","term_order":"92","cat_ID":180,"category_count":9,"category_description":"Using MySQL for web applications ","cat_name":"MySQL","category_nicename":"mysql","category_parent":168},{"term_id":166,"name":"Website","slug":"website","term_group":0,"term_taxonomy_id":166,"taxonomy":"category","description":"About your Website(s)","parent":0,"count":169,"filter":"raw","term_order":"120","cat_ID":166,"category_count":169,"category_description":"About your Website(s)","cat_name":"Website","category_nicename":"website","category_parent":0},{"term_id":188,"name":"Website Security","slug":"website-security","term_group":0,"term_taxonomy_id":188,"taxonomy":"category","description":"Securing your website","parent":168,"count":15,"filter":"raw","term_order":"122","cat_ID":188,"category_count":15,"category_description":"Securing your website","cat_name":"Website Security","category_nicename":"website-security","category_parent":168}],"tag_title":[{"term_id":18336,"name":"SQL injection","slug":"sql-injection","term_group":0,"term_taxonomy_id":18336,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw","term_order":"2022"},{"term_id":55,"name":"Website Security","slug":"website_security","term_group":0,"term_taxonomy_id":55,"taxonomy":"post_tag","description":"","parent":0,"count":5,"filter":"raw","term_order":"3037"}]},"featured_image_src":null,"author_info":{"display_name":"marketing","author_link":"https:\/\/xneelo.co.za\/help-centre\/author\/marketing\/","author_avatar":"https:\/\/secure.gravatar.com\/avatar\/a6ea315e112423b2b955cb020fbce2b0835956c6ad85ff0f13f1db298977eaaa?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/xneelo.co.za\/help-centre\/wp-json\/wp\/v2\/posts\/2683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xneelo.co.za\/help-centre\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xneelo.co.za\/help-centre\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xneelo.co.za\/help-centre\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/xneelo.co.za\/help-centre\/wp-json\/wp\/v2\/comments?post=2683"}],"version-history":[{"count":0,"href":"https:\/\/xneelo.co.za\/help-centre\/wp-json\/wp\/v2\/posts\/2683\/revisions"}],"wp:attachment":[{"href":"https:\/\/xneelo.co.za\/help-centre\/wp-json\/wp\/v2\/media?parent=2683"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xneelo.co.za\/help-centre\/wp-json\/wp\/v2\/categories?post=2683"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xneelo.co.za\/help-centre\/wp-json\/wp\/v2\/tags?post=2683"},{"taxonomy":"topics","embeddable":true,"href":"https:\/\/xneelo.co.za\/help-centre\/wp-json\/wp\/v2\/topics?post=2683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}