Module security from libxslt

# The XSLT C library for GNOME

## Module security from libxslt

API Menu

- Main Menu
- Developer Menu
- API Menu
- ChangeLog

Related links

- Mail archive
- XML libxml2
- FTP
- Windows binaries
- Solaris binaries
- MacOsX binaries
- Bug Tracker
- lxml Python bindings
- Perl XSLT bindings
- XSLT with PHP
- Apache module
- Pascal bindings
- Xsldbg Debugger

API Indexes

- Alphabetic
- Constructors
- Functions/Types
- Modules
- Symbols

the libxslt security framework allow to restrict the access to new resources (file or URL) from the stylesheet at runtime.

## Table of Contents

    Enum xsltSecurityOption

    Structure xsltSecurityPrefs
    struct _xsltSecurityPrefs
    The content of this structure is not made public by the API.

    Typedef xsltSecurityPrefs * xsltSecurityPrefsPtr

    int	xsltCheckRead			(xsltSecurityPrefsPtr sec,
    					 xsltTransformContextPtr ctxt,
    					 const xmlChar * URL)

    int	xsltCheckWrite			(xsltSecurityPrefsPtr sec,
    					 xsltTransformContextPtr ctxt,
    					 const xmlChar * URL)

    void	xsltFreeSecurityPrefs		(xsltSecurityPrefsPtr sec)

    xsltSecurityPrefsPtr	xsltGetDefaultSecurityPrefs	(void)

    xsltSecurityCheck	xsltGetSecurityPrefs	(xsltSecurityPrefsPtr sec,
    						 xsltSecurityOption option)

    xsltSecurityPrefsPtr	xsltNewSecurityPrefs	(void)

    int	xsltSecurityAllow		(xsltSecurityPrefsPtr sec,
    					 xsltTransformContextPtr ctxt,
    					 const char * value)

    Function type: xsltSecurityCheck
    int	xsltSecurityCheck		(xsltSecurityPrefsPtr sec,
    					 xsltTransformContextPtr ctxt,
    					 const char * value)

    int	xsltSecurityForbid		(xsltSecurityPrefsPtr sec,
    					 xsltTransformContextPtr ctxt,
    					 const char * value)

    int	xsltSetCtxtSecurityPrefs	(xsltSecurityPrefsPtr sec,
    					 xsltTransformContextPtr ctxt)

    void	xsltSetDefaultSecurityPrefs	(xsltSecurityPrefsPtr sec)

    int	xsltSetSecurityPrefs		(xsltSecurityPrefsPtr sec,
    					 xsltSecurityOption option,
    					 xsltSecurityCheck func)

## Description

### Enum xsltSecurityOption

    Enum xsltSecurityOption {
        XSLT_SECPREF_READ_FILE = 1
        XSLT_SECPREF_WRITE_FILE = 2
        XSLT_SECPREF_CREATE_DIRECTORY = 3
        XSLT_SECPREF_READ_NETWORK = 4
        XSLT_SECPREF_WRITE_NETWORK = 5
    }

### Structure xsltSecurityPrefs

    Structure xsltSecurityPrefs
    struct _xsltSecurityPrefs {
    The content of this structure is not made public by the API.
    }

### Function: xsltCheckRead

    int	xsltCheckRead			(xsltSecurityPrefsPtr sec,
    					 xsltTransformContextPtr ctxt,
    					 const xmlChar * URL)

Check if the resource is allowed to be read

`sec`: | the security options
`ctxt`: | an XSLT transformation context
`URL`: | the resource to be read
`Returns`: | 1 if read is allowed, 0 if not and -1 in case or error.

### Function: xsltCheckWrite

    int	xsltCheckWrite			(xsltSecurityPrefsPtr sec,
    					 xsltTransformContextPtr ctxt,
    					 const xmlChar * URL)

Check if the resource is allowed to be written, if necessary makes some preliminary work like creating directories

`sec`: | the security options
`ctxt`: | an XSLT transformation context
`URL`: | the resource to be written
`Returns`: | 1 if write is allowed, 0 if not and -1 in case or error.

### Function: xsltFreeSecurityPrefs

    void	xsltFreeSecurityPrefs		(xsltSecurityPrefsPtr sec)

Free up a security preference block

`sec`: | the security block to free

### Function: xsltGetDefaultSecurityPrefs

    xsltSecurityPrefsPtr	xsltGetDefaultSecurityPrefs	(void)

Get the default security preference application-wide

`Returns`: | the current xsltSecurityPrefsPtr in use or NULL if none

### Function: xsltGetSecurityPrefs

    xsltSecurityCheck	xsltGetSecurityPrefs	(xsltSecurityPrefsPtr sec,
    						 xsltSecurityOption option)

Lookup the security option to get the callback checking function

`sec`: | the security block to update
`option`: | the option to lookup
`Returns`: | NULL if not found, the function otherwise

### Function: xsltNewSecurityPrefs

    xsltSecurityPrefsPtr	xsltNewSecurityPrefs	(void)

Create a new security preference block

`Returns`: | a pointer to the new block or NULL in case of error

### Function: xsltSecurityAllow

    int	xsltSecurityAllow		(xsltSecurityPrefsPtr sec,
    					 xsltTransformContextPtr ctxt,
    					 const char * value)

Function used to always allow an operation

`sec`: | the security block to use
`ctxt`: | an XSLT transformation context
`value`: | unused
`Returns`: | 1 always

### Function type: xsltSecurityCheck

    Function type: xsltSecurityCheck
    int	xsltSecurityCheck		(xsltSecurityPrefsPtr sec,
    					 xsltTransformContextPtr ctxt,
    					 const char * value)

User provided function to check the value of a string like a file path or an URL ...

`sec`: |
`ctxt`: |
`value`: |
`Returns`: |

### Function: xsltSecurityForbid

    int	xsltSecurityForbid		(xsltSecurityPrefsPtr sec,
    					 xsltTransformContextPtr ctxt,
    					 const char * value)

Function used to always forbid an operation

`sec`: | the security block to use
`ctxt`: | an XSLT transformation context
`value`: | unused
`Returns`: | 0 always

### Function: xsltSetCtxtSecurityPrefs

    int	xsltSetCtxtSecurityPrefs	(xsltSecurityPrefsPtr sec,
    					 xsltTransformContextPtr ctxt)

Set the security preference for a specific transformation

`sec`: | the security block to use
`ctxt`: | an XSLT transformation context
`Returns`: | -1 in case of error, 0 otherwise

### Function: xsltSetDefaultSecurityPrefs

    void	xsltSetDefaultSecurityPrefs	(xsltSecurityPrefsPtr sec)

Set the default security preference application-wide

`sec`: | the security block to use

### Function: xsltSetSecurityPrefs

    int	xsltSetSecurityPrefs		(xsltSecurityPrefsPtr sec,
    					 xsltSecurityOption option,
    					 xsltSecurityCheck func)

Update the security option to use the new callback checking function

`sec`: | the security block to update
`option`: | the option to update
`func`: | the user callback to use for this option
`Returns`: | -1 in case of error, 0 otherwise

Daniel Veillard