<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rdf:RDF[
	<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
	<!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>
	<!ENTITY owl 'http://www.w3.org/2002/07/owl#'>
	<!ENTITY swivt 'http://semantic-mediawiki.org/swivt/1.0#'>
	<!ENTITY wiki 'http://wikibase.nl/Special:URIResolver/'>
	<!ENTITY category 'http://wikibase.nl/Special:URIResolver/Category-3A'>
	<!ENTITY property 'http://wikibase.nl/Special:URIResolver/Property-3A'>
	<!ENTITY wikiurl 'https://open-csp.org/'>
]>

<rdf:RDF
	xmlns:rdf="&rdf;"
	xmlns:rdfs="&rdfs;"
	xmlns:owl ="&owl;"
	xmlns:swivt="&swivt;"
	xmlns:wiki="&wiki;"
	xmlns:category="&category;"
	xmlns:property="&property;">

	<owl:Ontology rdf:about="https://open-csp.org/Special:ExportRDF/DevOps-3ADoc/FlexForm/2.0/security">
		<swivt:creationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2026-04-30T17:05:55+02:00</swivt:creationDate>
		<owl:imports rdf:resource="http://semantic-mediawiki.org/swivt/1.0"/>
	</owl:Ontology>
	<swivt:Subject rdf:about="http://wikibase.nl/Special:URIResolver/DevOps-3ADoc/FlexForm/2.0/security">
		<rdfs:label>Security</rdfs:label>
		<rdfs:isDefinedBy rdf:resource="https://open-csp.org/Special:ExportRDF/DevOps-3ADoc/FlexForm/2.0/security"/>
		<swivt:page rdf:resource="https://open-csp.org/DevOps-3ADoc/FlexForm/2.0/security"/>
		<swivt:wikiNamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">50000</swivt:wikiNamespace>
		<swivt:wikiPageContentLanguage rdf:datatype="http://www.w3.org/2001/XMLSchema#string">en</swivt:wikiPageContentLanguage>
		<property:Class rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Doc</property:Class>
		<property:Doc_sort_order rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1002</property:Doc_sort_order>
		<property:Doc_subject rdf:resource="&wiki;DevOps-3ADoc/FlexForm"/>
		<property:Doc_synopsis rdf:datatype="http://www.w3.org/2001/XMLSchema#string">FlexForm Security options</property:Doc_synopsis>
		<property:Doc_target_group rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Administrator</property:Doc_target_group>
		<property:Doc_title_with_versions rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Security (2.0,2.1,2.5)</property:Doc_title_with_versions>
		<property:Subject_version rdf:datatype="http://www.w3.org/2001/XMLSchema#string">2.0</property:Subject_version>
		<property:Subject_version rdf:datatype="http://www.w3.org/2001/XMLSchema#string">2.1</property:Subject_version>
		<property:Subject_version rdf:datatype="http://www.w3.org/2001/XMLSchema#string">2.5</property:Subject_version>
		<property:Title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Security</property:Title>
		<property:Has_query rdf:resource="&wiki;DevOps-3ADoc/FlexForm/2.0/security-23_QUERYa647a105ebf0f0726a419fea77bb13ce"/>
		<swivt:wikiPageCreationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2023-01-04T19:37:03Z</swivt:wikiPageCreationDate>
		<property:Creation_date-23aux rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2459949.3173958</property:Creation_date-23aux>
		<property:Display_title_of rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Security</property:Display_title_of>
		<swivt:wikiPageModificationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2025-08-21T09:08:01Z</swivt:wikiPageModificationDate>
		<property:Modification_date-23aux rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2460908.8805671</property:Modification_date-23aux>
		<swivt:wikiPageSortKey rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Doc/FlexForm/2.0/security</swivt:wikiPageSortKey>
		<property:Page_creator rdf:resource="&wiki;User-3ACharlot"/>
		<property:Page_author rdf:resource="&wiki;User-3AMaintenance_script"/>
		<property:Page_author rdf:resource="&wiki;User-3ACharlot"/>
		<property:Page_author rdf:resource="&wiki;User-3AFd4138e7-2D8b46-2D4c8f-2D99bf-2Dd4b738ebc295"/>
		<property:Page_ID rdf:datatype="http://www.w3.org/2001/XMLSchema#double">363</property:Page_ID>
		<property:Internal_links rdf:datatype="http://www.w3.org/2001/XMLSchema#string">DevOps:Doc/FlexForm/2.0/validated-forms</property:Internal_links>
		<property:Internal_links rdf:datatype="http://www.w3.org/2001/XMLSchema#string">DevOps:Doc/FlexForm/2.0/input</property:Internal_links>
		<property:Parsed_text rdf:datatype="http://www.w3.org/2001/XMLSchema#string">FlexForm is a very powerful tool. It can create new pages or edit existing ones. It can create new users, send emails and much more. With this much power comes responsibility. 
 Luckily FlexForm has a lot of security features build-in.
 
 LocalSetting configuration 
 This setting should be always be on. It will filter any user input. Create checksums for each form to detect tempering. Will renders Forms that make no sense when inspected by the Browsers Developer tools. And more.
  $wgFlexFormConfig['secure'] = true; 
 
 
 By default the option to have FlexForm create users with a Form is turned off
  $wgFlexFormConfig['can_create_user'] = false; 
 
 
 Set a group of users that can have special privileges using FlexForm. Here we set the sysop and moderators to have these privileges.
  $wgFlexFormConfig['allowedGroups'] = ["sysop","moderator"]; 
 
 
 This option will only allow users in the allowedGroups to edit a page that contains a FlexForm in its source. Making it for anonymous or others users not possible to change a FlexForm Form. On top of that, the edit and edit source options in the top menu, if available, will not be shown. Actions like edit or vedit are also blocked.
  $wgFlexFormConfig['hideEdit'] = true; 
 
 
 With the next option, FlexForm will check if the action it needs to do (create or edit a page) is allowed for the user filling in the Form. Example: You have a Form to edit a Template on your main page. The Form can be anywhere in the wiki. FlexForm will check on Form submit if the user is allowed to edit the main page first.
When you set this option to true, then no such check will be done.
  $wgFlexFormConfig['userscaneditallpages'] = false; 
 
 
 This option is very powerful and will only render approved or valid forms. Basically, any form created or edited by a user in the allowedGroups setting, automatically validates a form.
For more detailed information : Documentation on Validated forms 
  $wgFlexFormConfig['renderonlyapprovedforms'] = true; 
 
 Other options 
 By default, a FlexForm form is never rendered for an anonymous user. You can change this by adding a restrictions="lifted" to a Form tag. This can be useful for e.g. a contact form or questionnaire. Be sure to setup the build-in reCaptcha options in Flexform when allowing anonymous form submit!
 When creating a user input in a Form, FlexForm will by default always filter the input for html, JavaScript or malicious code. You can however specify per input what is allowed and what is not. More information here : Default input HTML attribute 
 Especially when you have a "closed" wiki, where people need to register and will get their rights through user groups, it is a good option just not to show a Form to someone from a user group that is not allowed to use it.</property:Parsed_text>
	</swivt:Subject>
	<swivt:Subject rdf:about="http://wikibase.nl/Special:URIResolver/DevOps-3ADoc/FlexForm/2.0/security-23_QUERYa647a105ebf0f0726a419fea77bb13ce">
		<swivt:masterPage rdf:resource="&wiki;DevOps-3ADoc/FlexForm/2.0/security"/>
		<swivt:wikiNamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">50000</swivt:wikiNamespace>
		<property:Query_depth rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0</property:Query_depth>
		<property:Query_format rdf:datatype="http://www.w3.org/2001/XMLSchema#string">plainlist</property:Query_format>
		<property:Query_size rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</property:Query_size>
		<property:Query_string rdf:datatype="http://www.w3.org/2001/XMLSchema#string">[[:DevOps:Doc/FlexForm/2.0/security]]</property:Query_string>
		<swivt:wikiPageSortKey rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Doc/FlexForm/2.0/security# QUERYa647a105ebf0f0726a419fea77bb13ce</swivt:wikiPageSortKey>
	</swivt:Subject>
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#creationDate" />
	<owl:ObjectProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#page" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiNamespace" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageContentLanguage" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AClass" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_sort_order" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_subject" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_synopsis" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_target_group" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_title_with_versions" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ASubject_version" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ATitle" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AHas_query" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageCreationDate" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ACreation_date-23aux" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADisplay_title_of" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageModificationDate" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AModification_date-23aux" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageSortKey" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3APage_creator" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3APage_author" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3APage_ID" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AInternal_links" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AParsed_text" />
	<owl:ObjectProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#masterPage" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_depth" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_format" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_size" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_string" />
	<!-- Created by Semantic MediaWiki, https://www.semantic-mediawiki.org/ -->
</rdf:RDF>