39 lines
897 B
JavaScript
39 lines
897 B
JavaScript
import _ from 'lodash/fp';
|
|
|
|
// we don't store loop protect disable key
|
|
export const removeNoprotect = _.replace(/noprotect/gi, '');
|
|
|
|
export const encodeScriptTags = _.flow(
|
|
_.replace(/<script>/gi, 'fccss'),
|
|
_.replace(/<\/script>/gi, 'fcces')
|
|
);
|
|
|
|
export const decodeScriptTags = _.flow(
|
|
_.replace(/fccss/gi, '<script>'),
|
|
_.replace(/fcces/gi, '</script>')
|
|
);
|
|
|
|
export const encodeFormAction = _.replace(
|
|
// look for attributes in a form
|
|
/<form[^>]*>/,
|
|
// val is the string within the opening form tag
|
|
// look for an `action` attribute, replace it with a fcc tag
|
|
_.replace(/action(\s*?)=/, 'fccfaa$1=')
|
|
);
|
|
|
|
export const decodeFormAction = _.replace(
|
|
/<form[^>]*>/,
|
|
_.replace(/fccfaa(\s*?)=/, 'action$1=')
|
|
);
|
|
|
|
export const encodeFcc = _.flow(
|
|
removeNoprotect,
|
|
encodeFormAction,
|
|
encodeScriptTags
|
|
);
|
|
|
|
export const decodeFcc = _.flow(
|
|
decodeFormAction,
|
|
decodeScriptTags
|
|
);
|