Firefox3/BorderImage Security Review

From MozillaWiki
Jump to: navigation, search

Overview

Background links

Security and Privacy

  • What security issues do you address in your project?
    • A new CSS property is added. It is parsed using the existing CSS parser APIs
  • Is system or subsystem security compromised in any way if your project's configuration files / prefs are corrupt or missing?
    • no
  • Include a thorough description of the security assumptions, capabilities and any potential risks (possible attack points) being introduced by your project.
    • Assumes the existing image loading code will detect and gracefully handle malformed images
    • Assumes that floating point division by 0 (or other overflow) won't result in an exception

Exported APIs

  • Please provide a table of exported interfaces (APIs, ABIs, protocols, UI, etc.)
    • Just a new CSS property
  • Does it interoperate with a web service? How will it do so?
    • nope
  • Explain the significant file formats, names, syntax, and semantics.
  • Are the externally visible interfaces documented clearly enough for a non-Mozilla developer to use them successfully?
    • yes, though the CSS spec
  • Does it change any existing interfaces?
    • no

Module interactions

  • What other modules are used (REQUIRES in the makefile, interfaces)
    • nothing new

Data

  • What data is read or parsed by this feature
    • the -moz-border-image css property
  • What is the output of this feature
    • An array of parsed nsCSSValues
  • What storage formats are used
    • nsCSSValue, nsMargin, an enum for the border-image types, and imgIRequest for the image

Reliability

  • What failure modes or decision points are presented to the user?
    • If the image cannot be loaded, the border-image is effectively removed (per spec)
    • If the property doesn't parse properly, then the user will see an error in the Error Console as with all malformed CSS properties
  • Can its files be corrupted by failures? Does it clean up any locks/files after crashes?
    • n/a

configuration

  • Can the end user configure settings, via a UI or about:config? Hidden prefs? Environment variables?
    • none
  • Are there build options for developers? [#ifdefs, ac_add_options, etc.]
    • none
  • What ranges for the tunable are appropriate? How are they determined?
    • n/a
  • What are its on-going maintenance requirements (e.g. Web links, perishable data files)?
    • needs to be kept up to date with the proposed spec and finalized as border-image when the spec is finalized

Relationships to other projects - are there related projects in the community?

  • Safari has their own version implemented; there is a proposed w3c spec