CCTV

CCTV camera

The UK has more CCTV cameras per person than anywhere else in the world and the use of CCTV raises data protection and wider privacy concerns. It can be used in intrusive ways to put ordinary individuals under surveillance as they go about their everyday lives. Because of this, it's an area in which we've always taken a great deal of interest. We have issued guidance to help organisations who use CCTV to comply with the Data Protection Act 1998 and to help them inspire public confidence that they are using CCTV responsibly.

Images of people are covered by the Data Protection Act, and so is information about people which is derived from images – for example, vehicle registration numbers. Most uses of CCTV by organisations or businesses will be covered by the Act, regardless of the number of cameras or how sophisticated the equipment is.

The Data Protection Act does not apply to individuals’ private or household purposes. So if you install a camera on your own home to protect it from burglary, the Act will not apply.

We have published the following guidance to help organisations using CCTV to stay within the law:

CCTV code of practice 2008 (PDF)
CCTV code of practice 2008 (HTML)

This updated version of our code of practice provides guidance and advice for CCTV users on how to comply with the Data Prtotection Act and also includes a simple checklist for users of very limited CCTV systems where the full provisions of the code would be too detailed.

If you are still uncertain or have any other questions, please contact us.

Relevant downloads


View the document library

System.Xml.Xsl.XsltException: Function 'sc:fld()' has failed. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: Hashtable insert failed.  Load factor too high.
   at System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)
   at System.Collections.Hashtable.set_Item(Object key, Object value)
   at Sitecore.Data.Templates.Template.GetField(String fieldName)
   at Sitecore.Data.DataManager.GetTemplateField(String fieldName, Item item)
   at Sitecore.Data.DataManager.GetFieldID(String fieldName, Item item)
   at Sitecore.Collections.FieldCollection.GetFieldID(String fieldName)
   at Sitecore.Collections.FieldCollection.get_Item(String fieldName)
   at Sitecore.Data.Items.BaseItem.get_Item(String fieldName)
   at Sitecore.Xml.Xsl.XslHelper.GetFieldValue(String fieldName, XPathNodeIterator iterator, String subValue)
   at Sitecore.Xml.Xsl.XslHelper.fld(String sFieldName, XPathNodeIterator ni, String sSubValue)
   at Sitecore.Xml.Xsl.XslHelper.fld(String sFieldName, XPathNodeIterator ni)
   --- End of inner exception stack trace ---
   at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess)
   at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean verifyAccess)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodInfo.Invoke(Object obj, Object[] parameters)
   at System.Xml.Xsl.FuncExtension.Invoke(XsltContext xsltContext, Object[] args, XPathNavigator docContext)
   at System.Xml.XPath.XsltFunction.InvokeFunction(XPathNavigator qy, XPathNodeIterator iterator)
   --- End of inner exception stack trace ---
   at System.Xml.XPath.XsltFunction.InvokeFunction(XPathNavigator qy, XPathNodeIterator iterator)
   at System.Xml.XPath.XsltFunction.getValue(XPathNavigator qy, XPathNodeIterator iterator)
   at System.Xml.XPath.XPathNavigator.Evaluate(XPathExpression expr, XPathNodeIterator context)
   at System.Xml.Xsl.Processor.ValueOf(ActionFrame context, Int32 key)
   at System.Xml.Xsl.ValueOfAction.Execute(Processor processor, ActionFrame frame)
   at System.Xml.Xsl.ActionFrame.Execute(Processor processor)
   at System.Xml.Xsl.Processor.Execute()
   at System.Xml.Xsl.XslTransform.Transform(XPathNavigator input, XsltArgumentList args, TextWriter output, XmlResolver resolver)
   at Sitecore.Web.UI.WebControls.XslFile.DoRender(HtmlTextWriter output, Item item) Xsl file could not be processed: /xsl/ICOContentLevel.xslt