11 #include <booster/copy_ptr.h> 12 #include <booster/regex.h> 13 #include <booster/function.h> 14 #include <cppcms/defs.h> 36 struct basic_rules_holder;
190 rules(std::string
const &file_name);
205 opening_and_closing = 1,
213 html_type html()
const;
218 void html(html_type t);
226 void add_tag(std::string
const &name,
tag_type = any_tag);
231 void add_entity(std::string
const &name);
237 bool numeric_entities_allowed()
const;
242 void numeric_entities_allowed(
bool v);
247 typedef booster::function<bool(char const *begin,char const *end)>
validator_type;
256 void add_boolean_property(std::string
const &tag_name,std::string
const &property);
260 void add_property(std::string
const &tag_name,std::string
const &property,validator_type
const &val);
264 void add_property(std::string
const &tag_name,std::string
const &property,
booster::regex const &r);
269 void add_integer_property(std::string
const &tag_name,std::string
const &property);
278 void add_uri_property(std::string
const &tag_name,std::string
const &property);
286 void add_uri_property(std::string
const &tag_name,std::string
const &property,std::string
const &schema);
311 CPPCMS_DEPRECATED
static booster::regex uri_matcher(std::string
const &schema);
319 static validator_type uri_validator();
335 static validator_type uri_validator(std::string
const &scheme,
bool absolute_only =
false);
341 static validator_type relative_uri_validator();
346 bool comments_allowed()
const;
350 void comments_allowed(
bool comments);
367 void encoding(std::string
const &enc);
376 tag_type valid_tag(details::c_string
const &tag)
const;
382 bool valid_boolean_property(details::c_string
const &tag,details::c_string
const &property)
const;
388 bool valid_property(details::c_string
const &tag,details::c_string
const &property,details::c_string
const &value)
const;
393 bool valid_entity(details::c_string
const &val)
const;
399 std::string encoding()
const;
405 basic_rules_holder &impl();
406 basic_rules_holder
const &impl()
const;
427 CPPCMS_API
bool validate(
char const *begin,
char const *end,
rules const &r);
438 std::string &filtered,
439 filtering_method_type method=remove_invalid,
440 char replacement_char = 0);
446 CPPCMS_API std::string
filter(
char const *begin,
449 filtering_method_type method=remove_invalid,
450 char replacement_char = 0);
454 CPPCMS_API std::string
filter(std::string
const &input,
456 filtering_method_type method=remove_invalid,
457 char replacement_char = 0);
This is a simple wrapper of PCRE library.
Definition: perl_regex.h:35
This class is central representation of json objects.
Definition: json.h:140
CPPCMS_API std::string filter(char const *begin, char const *end, rules const &r, filtering_method_type method=remove_invalid, char replacement_char=0)
Filter the input in range [begin, end) according to the rules r using filtering method method...
tag_type
Definition: xss.h:203
CPPCMS_API bool validate(char const *begin, char const *end, rules const &r)
Check the input in range [begin, end) according to the rules r.
This is the namespace where all CppCMS functionality is placed.
Definition: application.h:19
The class that holds XSS filter rules.
Definition: xss.h:90
booster::function< bool(char const *begin, char const *end)> validator_type
Definition: xss.h:247
filtering_method_type
The enumerator that defines filtering invalid HTML method.
Definition: xss.h:416
CPPCMS_API bool validate_and_filter_if_invalid(char const *begin, char const *end, rules const &r, std::string &filtered, filtering_method_type method=remove_invalid, char replacement_char=0)
Validate the input in range [begin, end) according to the rules r and if it is not valid filter it an...
html_type
Definition: xss.h:195
Assume that the input is XHTML.
Definition: xss.h:196
Remove all invalid HTML form the input.
Definition: xss.h:417
Escape (convert to text) all invalid HTML in the input.
Definition: xss.h:418