| @@ -1,97 +1,154 @@ | ||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | -if (!defined('ABSPATH')) exit; | |
| 3 | +if ( ! defined( 'ABSPATH' ) ) { | |
| 4 | + exit; | |
| 5 | +} | |
| 4 | 6 | |
| 5 | 7 | class gdsih_core_plugin extends d4p_plugin_core { |
| 6 | - public $svg_icon = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDMwMCAzMDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxLjQxNDIxOyI+CiAgICA8cGF0aCBkPSJNMTAsMTMyLjg3N0wxMC40OTQsMTM2LjIxMUMxMC44MDYsMTM4LjU3NiAxMS41MjksMTQyLjIwOCAxMi41MjEsMTQ3LjIxN0MxMy41MjQsMTUyLjEwNCAxNC40NTMsMTU2LjM2OSAxNS4zMjcsMTU5Ljc2OUMxNi4yMDIsMTYzLjE2OCAxNy4wODgsMTY2LjQ0NiAxNy45OTUsMTY5LjQ3OUwxOC44LDE3Mi4wNDlMMTguOCwyNzIuNkMxOC44LDI3Ny40IDIzLjgsMjgyLjYgMjguNywyODIuNkw5My40NTUsMjgyLjZMOTMuODI0LDI4Mi45MjlDOTUuMDM3LDI4NC4wMjIgOTYuMzgsMjg1LjEyNiA5Ny45NSwyODYuNjJDOTkuNTMyLDI4Ny45OTIgMTAwLjg3NSwyODkuMDk3IDEwMS44NSwyODkuOTIyTDEwMS45NDYsMjkwTDIwLjUsMjkwQzE1LjMsMjkwIDEwLDI4NC41IDEwLDI3OS4zTDEwLDEzMi44NzdaIiBzdHlsZT0iZmlsbDpyZ2IoMTU4LDE2MywxNjgpOyIvPgogICAgPHBhdGggZD0iTTI4OS45LDEyMS45MDlMMjg5LjksMjc5LjNDMjg5LjksMjg0LjQgMjg0LDI5MCAyNzguOCwyOTBMMTcxLjY3NCwyOTBMMTc1LjQ4MywyODcuNjgxQzE3Ny44MzcsMjg2LjI5NCAxNzkuMjM2LDI4NS4zMTMgMTc5Ljc4OSwyODQuOTkzTDE4My41MTQsMjgyLjZMMjcyLjIsMjgyLjZDMjc3LjAzNywyODIuNTM5IDI4Mi41MzQsMjc3LjQzMiAyODIuNTg2LDI3Mi42TDI4Mi42LDI3Mi42TDI4Mi42LDI3Mi41TDI4Mi41ODYsMjcyLjZMMjgyLjUsMjcyLjZMMjgyLjUsMTUzLjQ3MkwyODMuMTc5LDE1MS40ODJDMjg0LjI1NSwxNDguMjU4IDI4NS4yMjQsMTQ0Ljc3OCAyODYuMjE0LDE0MS4wNTRDMjg3LjA3NCwxMzcuMzE5IDI4Ny45ODksMTMyLjk3MyAyODguOTgsMTI3Ljc3M0wyODkuOSwxMjEuOTA5WiIgc3R5bGU9ImZpbGw6cmdiKDE1OCwxNjMsMTY4KTsiLz4KICAgIDxwYXRoIGQ9Ik0xNDUuNTM5LDI4Mi42TDE0NC40MTgsMjgzLjE2OUMxNDQuMDA1LDI4My4zNzggMTQzLjMzMywyODMuNTYzIDE0Mi4xMTksMjgzLjk0NkMxNDAuOTA0LDI4NC4zMjkgMTM5LjU1OSwyODQuNyAxMzcuOTMzLDI4NS4yOTJDMTM2LjMxNywyODUuNzYyIDEzNS4yNDMsMjg2LjAzNSAxMzQuNTcxLDI4Ni4yMkwxMzMuNjM5LDI4Ni4zODJMMTMyLjYyLDI4Ni4wNDVDMTMxLjk4LDI4NS44NjQgMTMxLjIyMiwyODUuNTUgMTMwLjQ3NCwyODUuMTE0QzEyOS43MjcsMjg0LjY3OCAxMjguNDcsMjg0LjA3MyAxMjYuNzI1LDI4My4wNTVMMTI1Ljk0NSwyODIuNkwxNDUuNTM5LDI4Mi42WiIgc3R5bGU9ImZpbGw6cmdiKDE1OCwxNjMsMTY4KTsiLz4KICAgIDxwYXRoIGQ9Ik0yODAuNiwxMC4xQzI4NS44NSwxMC4xNSAyODkuOTk5LDE0LjMzIDI4OS45LDE5LjRMMjg5LjksNTMuNDY4TDI4Ni4zMDEsNTIuNTA1TDI4Mi41LDUxLjY0NEwyODIuNSwyNy45QzI4Mi41LDIzIDI3OC42LDE5LjEgMjczLjcsMTkuMUwxODguNTA4LDE5LjFMMTg0LjA3NSwxNi44NzdDMTc3LjU2MywxMy40NjMgMTczLjY3MywxMS41MTUgMTcyLjU0NiwxMC45MjJMMTcxLjA2NiwxMC4xTDI4MC42LDEwLjFaIiBzdHlsZT0iZmlsbDpyZ2IoMTU4LDE2MywxNjgpOyIvPgogICAgPHBhdGggZD0iTTEzOS40ODcsMTAuMUwxMzUuMzk0LDExLjM5N0MxMzIuODM1LDEyLjE1MSAxMzAuMDA1LDEzLjAwNCAxMjYuNzczLDEzLjk0NEMxMjMuNjcyLDE0Ljg5NSAxMjEuOTI2LDE1LjM1MyAxMjEuNjY2LDE1LjMzQzEyMS40MDUsMTUuMzA3IDExOS41MTksMTUuODc1IDExNi4wMjcsMTYuNzkxQzExMy4yNjMsMTcuNjExIDExMC4zNDQsMTguMzM5IDEwNy4yMzEsMTkuMUwyNy42LDE5LjFDMjIuNywxOS4xIDE4LjgsMjMgMTguOCwyNy45TDE4LjgsMjkuNjU1TDE0LjkzNSwyOS44NDlDMTMuMDkyLDI5LjkzIDExLjg5OSwzMC4wNjggMTEuMzU3LDMwLjI2NkwxMC42ODQsMzAuNDUxTDEwLjE2OSwzNi4xODZMMTAsMzguNzE5TDEwLDE5LjRDMTAsMTQuMzMgMTQuMDUxLDEwLjE1IDE5LjMsMTAuMUwxMzkuNDg3LDEwLjFaIiBzdHlsZT0iZmlsbDpyZ2IoMTU4LDE2MywxNjgpOyIvPgogICAgPGc+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4zMDA3OCwwLjExNjg1MywtMC4xMDk2MDcsMS4yMjAxMiwtMzMuMzMxNiwtNDQuNDcxNikiPgogICAgICAgICAgICA8cGF0aCBkPSJNMTczLjUzNCwzNS40ODNMMTc4LjEsMzcuNEMxNzguMiwzNy40IDE3OS42LDM3LjkgMTgyLjIsMzlDMTg0LjgsNDAgMTg2LjgsNDAuOCAxODguMiw0MS4zQzE4OS42LDQxLjggMTkxLjcsNDIuNSAxOTQuMyw0My40QzE5Ni45LDQ0LjIgMTk4LjYsNDQuOCAxOTkuMyw0NUMyMDAsNDUuMiAyMDAuOSw0NS41IDIwMS45LDQ1LjhDMjAyLjksNDYuMiAyMDQuMyw0Ni41IDIwNS45LDQ3QzIwNy42LDQ3LjQgMjA5LjcsNDggMjEyLjIsNDguNkMyMTQuNyw0OS4yIDIxNy4yLDQ5LjggMjE5LjYsNTAuM0MyMjIsNTAuOCAyMjMuNSw1MS4yIDIyNC4yLDUxLjNDMjI0LjksNTEuNSAyMjcuMiw1MS45IDIzMC45LDUyLjVDMjM0LjYsNTMuMiAyMzcsNTMuNiAyMzcuOSw1My43QzIzOC44LDUzLjggMjQxLjEsNTQuMiAyNDQuOCw1NC43TDI0Ny40NDIsNTUuMDc3TDI1NC40MTgsMTM3Ljg2N0wyNTIuOSwxNDQuNUMyNTIuMiwxNDcuMyAyNTEuNSwxNDkuNyAyNTEsMTUxLjhDMjUwLjUsMTUzLjkgMjQ5LjgsMTU2LjIgMjQ5LjEsMTU4LjZDMjQ4LjQsMTYxIDI0Ny45LDE2Mi41IDI0Ny44LDE2M0MyNDcuNiwxNjMuNSAyNDcuNCwxNjQuMSAyNDcuMSwxNjQuOUMyNDYuOCwxNjUuNyAyNDYuNSwxNjYuNyAyNDYuMSwxNjcuOEMyNDUuNywxNjguOSAyNDUsMTcwLjYgMjQ0LjIsMTcyLjdDMjQzLjMsMTc0LjggMjQyLjYsMTc2LjUgMjQyLjEsMTc3LjhDMjQxLjYsMTc5LjEgMjQwLjksMTgwLjYgMjQwLjEsMTgyLjRDMjM5LjMsMTg0LjEgMjM4LjIsMTg2LjMgMjM3LDE4OC44QzIzNS44LDE5MS4zIDIzNSwxOTIuOCAyMzQuOCwxOTMuMkMyMzQuNiwxOTMuNiAyMzMuNywxOTUuMSAyMzIuMSwxOTcuN0MyMzAuNiwyMDAuMyAyMjkuNiwyMDEuOCAyMjkuMywyMDIuM0MyMjksMjAyLjcgMjI4LjIsMjA0IDIyNywyMDUuOUMyMjUuOCwyMDcuOCAyMjUsMjA5LjEgMjI0LjYsMjA5LjZDMjI0LjIsMjEwLjIgMjIzLjcsMjExIDIyMi45LDIxMi4xQzIyMi4xLDIxMy4yIDIyMS41LDIxNC4xIDIyMSwyMTQuN0MyMjAuNiwyMTUuMyAyMjAsMjE2LjEgMjE5LjQsMjE2LjlDMjE4LjgsMjE3LjcgMjE4LjIsMjE4LjUgMjE3LjYsMjE5LjJDMjE3LjEsMjE5LjkgMjE2LjYsMjIwLjUgMjE2LjMsMjIxQzIxNiwyMjEuNSAyMTUuNSwyMjIuMSAyMTQuOSwyMjIuOUMyMTQuMywyMjMuNyAyMTMuNywyMjQuNCAyMTMuMSwyMjUuMkMyMTIuNSwyMjUuOSAyMTEuOSwyMjYuNyAyMTEuMiwyMjcuNUMyMTAuNSwyMjguMyAyMTAsMjI5IDIwOS41LDIyOS42QzIwOS4xLDIzMC4yIDIwOCwyMzEuMyAyMDYuNSwyMzIuOUMyMDQuOSwyMzQuNSAyMDMuMSwyMzYuMyAyMDEsMjM4LjRDMTk4LjksMjQwLjUgMTk3LjEsMjQyLjIgMTk1LjUsMjQzLjdDMTkzLjksMjQ1LjIgMTkyLjgsMjQ2LjEgMTkyLjMsMjQ2LjVDMTkxLjcsMjQ2LjggMTkwLjUsMjQ3LjggMTg4LjYsMjQ5LjRMMTg3Ljc3NywyNTAuMDgyTDE1OC44MTcsMjUyLjg1NkwxNTkuMiwyNTIuNkMxNTkuOCwyNTIuMyAxNjAuMywyNTIgMTYwLjgsMjUxLjdDMTYxLjMsMjUxLjQgMTYxLjgsMjUxLjIgMTYyLjIsMjUwLjlDMTYyLjYsMjUwLjYgMTYzLjUsMjUwLjEgMTY0LjgsMjQ5LjRDMTY2LjEsMjQ4LjcgMTY3LDI0OC4yIDE2Ny41LDI0Ny45QzE2OCwyNDcuNiAxNjguNSwyNDcuMyAxNjksMjQ2LjlDMTY5LjUsMjQ2LjYgMTcwLjMsMjQ2IDE3MS4zLDI0NS4yQzE3Mi4zLDI0NC41IDE3My4xLDI0My45IDE3My43LDI0My40QzE3NC4yLDI0Mi45IDE3NC44LDI0Mi41IDE3NS4yLDI0Mi4yQzE3NS42LDI0MS45IDE3Ni42LDI0MS4yIDE3OCwyNDBDMTc5LjQsMjM4LjggMTgwLjMsMjM4LjEgMTgwLjcsMjM3LjhDMTgxLjEsMjM3LjUgMTgyLjEsMjM2LjcgMTgzLjcsMjM1LjNDMTg1LjMsMjM0IDE4Ni40LDIzMy4xIDE4Ni44LDIzMi44QzE4Ny4yLDIzMi40IDE4OC4yLDIzMS42IDE4OS41LDIzMC40QzE5MC44LDIyOS4yIDE5Mi40LDIyNy43IDE5NC4yLDIyNS45QzE5NiwyMjQuMSAxOTcuNiwyMjIuNiAxOTguOSwyMjEuMkMyMDAuMiwyMTkuOCAyMDEuMSwyMTguOSAyMDEuNSwyMTguNEMyMDEuOSwyMTcuOSAyMDIuNCwyMTcuMyAyMDMsMjE2LjZDMjAzLjYsMjE1LjkgMjA0LjEsMjE1LjIgMjA0LjYsMjE0LjZDMjA1LjEsMjE0IDIwNS42LDIxMy4zIDIwNi4xLDIxMi43QzIwNi42LDIxMiAyMDcsMjExLjUgMjA3LjMsMjExLjFDMjA3LjYsMjEwLjcgMjA4LDIxMC4yIDIwOC41LDIwOS42QzIwOSwyMDkgMjA5LjUsMjA4LjMgMjEwLDIwNy42QzIxMC41LDIwNi45IDIxMSwyMDYuMiAyMTEuNCwyMDUuN0MyMTEuOCwyMDUuMiAyMTIuMywyMDQuNSAyMTMsMjAzLjVDMjEzLjcsMjAyLjYgMjE0LjIsMjAxLjkgMjE0LjUsMjAxLjRDMjE0LjgsMjAwLjkgMjE1LjUsMTk5LjkgMjE2LjUsMTk4LjJDMjE3LjYsMTk2LjUgMjE4LjIsMTk1LjUgMjE4LjUsMTk1LjFDMjE4LjcsMTk0LjcgMjE5LjYsMTkzLjQgMjIwLjksMTkxLjJDMjIyLjIsMTg5IDIyMywxODcuOCAyMjMuMiwxODcuNEMyMjMuNCwxODcgMjI0LDE4NS44IDIyNS4xLDE4My42QzIyNi4xLDE4MS41IDIyNywxNzkuNiAyMjcuNywxNzguMUMyMjguNCwxNzYuNiAyMjguOSwxNzUuMyAyMjkuNCwxNzQuMkMyMjkuOSwxNzMuMSAyMzAuNSwxNzEuNiAyMzEuMiwxNjkuOEMyMzEuOSwxNjggMjMyLjUsMTY2LjYgMjMyLjgsMTY1LjZDMjMzLjEsMTY0LjYgMjMzLjQsMTYzLjggMjMzLjcsMTYzLjFDMjM0LDE2Mi41IDIzNC4yLDE2MS45IDIzNC4zLDE2MS41QzIzNC41LDE2MSAyMzQuOSwxNTkuOCAyMzUuNSwxNTcuN0MyMzYuMiwxNTUuNiAyMzYuNywxNTMuNyAyMzcuMiwxNTEuOUMyMzcuNywxNTAuMSAyMzguMiwxNDggMjM4LjgsMTQ1LjZDMjM5LjQsMTQzLjIgMjQwLDE0MC44IDI0MC41LDEzOC41QzI0MSwxMzYuMSAyNDEuNCwxMzMuNiAyNDEuOCwxMzFDMjQyLjIsMTI4LjMgMjQyLjUsMTI1LjIgMjQyLjgsMTIxLjVDMjQzLjEsMTE3LjggMjQzLjUsMTExLjMgMjQ0LDEwMi4xQzI0NC42LDkyLjkgMjQ0LjksODUuMyAyNDUsNzkuNUwyNDUuMyw3MS4xQzI0NS4zLDcxIDI0My43LDcwLjcgMjQwLjcsNzAuMkMyMzcuNyw2OS43IDIzNi4xLDY5LjQgMjM2LjEsNjkuNEMyMzYuMSw2OS40IDIzNC41LDY5LjIgMjMxLjMsNjguN0MyMjguMSw2OC4yIDIyNi4xLDY3LjkgMjI1LjMsNjcuOEMyMjQuNSw2Ny43IDIyMi41LDY3LjMgMjE5LjMsNjYuOEMyMTYuMSw2Ni4zIDIxNC4yLDY1LjkgMjEzLjYsNjUuOEMyMTMsNjUuNyAyMTEuNiw2NS40IDIwOS42LDY1QzIwNy42LDY0LjUgMjA1LjUsNjQgMjAzLjMsNjMuNUMyMDEuMSw2MyAxOTkuMyw2Mi41IDE5Ny45LDYyLjFDMTk2LjQsNjEuNyAxOTUuMyw2MS40IDE5NC40LDYxLjFDMTkzLjUsNjAuOCAxOTIuOCw2MC42IDE5Mi4yLDYwLjRDMTkxLjYsNjAuMiAxOTAuMiw1OS43IDE4Ny45LDU5QzE4NS42LDU4LjIgMTgzLjksNTcuNiAxODIuNyw1Ny4yQzE4MS41LDU2LjggMTc5LjgsNTYuMSAxNzcuNiw1NS4yQzE3NS4zLDU0LjMgMTc0LjEsNTMuOCAxNzQsNTMuOEMxNzMuOSw1My44IDE3MS42LDUyLjggMTY3LjEsNTAuOUMxNjIuNyw0OSAxNjAuMSw0Ny45IDE1OS4zLDQ3LjVDMTU4LjYsNDcuMiAxNTcsNDYuNCAxNTQuNiw0NS4zTDE1MSw0My42TDE0OS40LDQzLjZMMTQ1LjksNDUuM0MxNDMuNSw0Ni41IDE0MS42LDQ3LjQgMTQwLDQ4LjFDMTM4LjQsNDguOCAxMzYuOCw0OS41IDEzNS4yLDUwLjJDMTMzLjYsNTAuOSAxMzEuOCw1MS42IDEyOS44LDUyLjVDMTI3LjgsNTMuMyAxMjYuNyw1My44IDEyNi42LDUzLjhDMTI2LjQsNTMuOCAxMjUuMiw1NC4zIDEyMyw1NS4yQzEyMC44LDU2LjEgMTE4LjQsNTcgMTE1LjgsNTcuOUMxMTMuMyw1OC44IDExMS42LDU5LjQgMTEwLjcsNTkuN0MxMDkuOCw2MCAxMDguOSw2MC4yIDEwOCw2MC41QzEwNy4xLDYwLjggMTA1LjgsNjEuMiAxMDQuMSw2MS43QzEwMi40LDYyLjIgMTAwLjQsNjIuNyA5OC4xLDYzLjNDOTUuOCw2My45IDkzLjEsNjQuNSA4OS45LDY1LjJDODYuOCw2NS45IDg0LjIsNjYuNCA4Mi4zLDY2LjdDODAuNCw2NyA3Ny4yLDY3LjUgNzIuOCw2OC4yQzY4LjQsNjguOSA2NS4xLDY5LjQgNjIuOSw2OS43QzYwLjcsNzAgNTksNzAuMyA1Ny44LDcwLjVDNTYuNSw3MC43IDU1LjgsNzAuOSA1NS41LDcxTDU1LjEsNzEuMkw1NS4xLDc1LjNDNTUuMSw3OCA1NS4yLDgyLjYgNTUuNSw4OS4xQzU1LjgsOTUuNiA1NiwxMDAuMiA1Ni4yLDEwMy4xQzU2LjMsMTA2IDU2LjUsMTA4LjcgNTYuNiwxMTEuMkM1Ni43LDExMy43IDU3LDExNy41IDU3LjQsMTIyLjVDNTcuOCwxMjcuNSA1OC4xLDEzMC41IDU4LjIsMTMxLjVDNTguMywxMzIuNSA1OC43LDEzNC42IDU5LjQsMTM3LjdDNjAuMSwxNDAuOSA2MC42LDE0My4zIDYxLDE0NC45QzYxLjQsMTQ2LjUgNjIuMSwxNDkgNjMsMTUyLjRDNjQsMTU1LjggNjQuOCwxNTguNyA2NS42LDE2MUM2Ni40LDE2My4zIDY3LjEsMTY1LjUgNjcuOSwxNjcuNkM2OC43LDE2OS42IDY5LjMsMTcxLjIgNjkuNywxNzIuMkM3MC4xLDE3My4yIDcwLjcsMTc0LjYgNzEuNSwxNzYuNEM3Mi4zLDE3OC4yIDcyLjcsMTc5LjEgNzIuNywxNzkuMUM3Mi43LDE3OS4xIDczLjEsMTgwIDczLjksMTgxLjZDNzQuNywxODMuMiA3NS4zLDE4NC41IDc1LjcsMTg1LjNDNzYuMiwxODYuMSA3Ni42LDE4NyA3Ny4yLDE4Ny45Qzc3LjgsMTg4LjkgNzguNiwxOTAuMyA3OS43LDE5Mi4xQzgwLjgsMTk0IDgxLjUsMTk1LjEgODEuOCwxOTUuNUM4MiwxOTUuOSA4Mi42LDE5Ni44IDgzLjUsMTk4LjFDODQuNCwxOTkuNCA4NC45LDIwMC4zIDg1LjEsMjAwLjZDODUuMywyMDAuOSA4NS43LDIwMS41IDg2LjMsMjAyLjRDODYuOSwyMDMuMiA4Ny4zLDIwMy45IDg3LjYsMjA0LjNDODcuOSwyMDQuNyA4OC4yLDIwNS4yIDg4LjgsMjA2Qzg5LjQsMjA2LjggODkuOCwyMDcuMyA5MC4xLDIwNy44QzkwLjUsMjA4LjIgOTAuOSwyMDguNyA5MS4zLDIwOS4zQzkxLjgsMjA5LjkgOTIuMSwyMTAuMyA5Mi40LDIxMC43QzkyLjYsMjExIDkyLjksMjExLjQgOTMuMywyMTEuOUM5My42LDIxMi4zIDk0LjEsMjEyLjggOTQuNSwyMTMuNEM5NSwyMTMuOSA5NS40LDIxNC41IDk1LjgsMjE1Qzk2LjIsMjE1LjUgOTYuNiwyMTYgOTcsMjE2LjVDOTcuNCwyMTcgOTgsMjE3LjYgOTguNywyMTguNEM5OS40LDIxOS4yIDk5LjksMjE5LjggMTAwLjMsMjIwLjJMMTA3LjEsMjI3QzEwNy42LDIyNy41IDEwOC42LDIyOC40IDEwOS45LDIyOS42QzExMS4zLDIzMC44IDExMiwyMzEuNSAxMTIuMiwyMzEuN0MxMTIuMywyMzEuOSAxMTMuMiwyMzIuNiAxMTQuNywyMzMuOEMxMTYuMiwyMzUgMTE3LjIsMjM1LjggMTE3LjYsMjM2LjFDMTE4LjEsMjM2LjUgMTE5LjEsMjM3LjMgMTIwLjcsMjM4LjZDMTIyLjMsMjM5LjkgMTIzLjUsMjQwLjkgMTI0LjMsMjQxLjVDMTI1LjEsMjQyLjIgMTI2LjEsMjQyLjkgMTI3LjIsMjQzLjhDMTI4LjMsMjQ0LjcgMTI5LjIsMjQ1LjQgMTI5LjksMjQ1LjlDMTMwLjYsMjQ2LjQgMTMxLjIsMjQ2LjggMTMxLjcsMjQ3LjJDMTMyLjIsMjQ3LjYgMTMyLjcsMjQ3LjkgMTMzLjIsMjQ4LjJDMTMzLjcsMjQ4LjUgMTM0LjYsMjQ5IDEzNS45LDI0OS43QzEzNy4yLDI1MC41IDEzOC4xLDI1MC45IDEzOC41LDI1MS4yQzEzOSwyNTEuNSAxMzkuNiwyNTEuOSAxNDAuNSwyNTIuNEMxNDEuMywyNTIuOSAxNDEuOSwyNTMuMiAxNDIuMSwyNTMuNEwxNDMuODc0LDI1NC4yODdMMTE5LjA5NiwyNTYuNjZMMTE1LjEsMjUzLjVDMTEzLjIsMjUxLjkgMTEyLDI1MSAxMTEuNSwyNTAuNkMxMTEsMjUwLjMgMTA5LjksMjQ5LjMgMTA4LjEsMjQ3LjlDMTA2LjMsMjQ2LjUgMTA1LjMsMjQ1LjcgMTA1LjEsMjQ1LjVDMTA0LjksMjQ1LjMgMTA0LDI0NC41IDEwMi40LDI0My4xQzEwMC44LDI0MS42IDk5LjcsMjQwLjYgOTkuMSwyNDBDOTguNSwyMzkuNCA5Ny4xLDIzOCA5NSwyMzUuOUM5Mi45LDIzMy44IDkxLjYsMjMyLjUgOTEuMiwyMzJDOTAuNywyMzEuNSA5MC4xLDIzMC44IDg5LjMsMjI5LjlDODguNSwyMjguOSA4Ny45LDIyOC4yIDg3LjQsMjI3LjZDODYuOSwyMjcgODYuNSwyMjYuNCA4NiwyMjUuOEM4NS41LDIyNS4yIDg1LDIyNC42IDg0LjUsMjIzLjlDODQsMjIzLjIgODMuNSwyMjIuNiA4My4xLDIyMi4xQzgyLjcsMjIxLjYgODIuMywyMjEuMSA4MiwyMjAuN0M4MS43LDIyMC4zIDgxLjMsMjE5LjggODAuOCwyMTkuMUM4MC4zLDIxOC40IDc5LjksMjE3LjggNzkuNSwyMTcuM0M3OS4xLDIxNi43IDc4LjYsMjE2IDc4LDIxNS4yQzc3LjQsMjE0LjMgNzYuOSwyMTMuNyA3Ni42LDIxMy4yQzc2LjIsMjEyLjcgNzUuNywyMTEuOSA3NSwyMTAuOUM3NC4zLDIwOS45IDczLjgsMjA5LjIgNzMuNiwyMDguOEM3My4zLDIwOC41IDcyLjcsMjA3LjUgNzEuNywyMDUuOUM3MC43LDIwNC4zIDcwLDIwMy4yIDY5LjcsMjAyLjhDNjkuNCwyMDIuNCA2OC42LDIwMS4xIDY3LjMsMTk4LjlDNjYsMTk2LjcgNjUsMTk1LjEgNjQuNCwxOTRDNjMuOCwxOTIuOSA2My4yLDE5MS45IDYyLjcsMTkwLjlDNjIuMiwxOTAgNjEuNSwxODguNSA2MC42LDE4Ni42QzU5LjcsMTg0LjcgNTkuMywxODMuNyA1OS4zLDE4My43QzU5LjMsMTgzLjYgNTguOSwxODIuNiA1OCwxODAuNUM1Ny4xLDE3OC40IDU2LjQsMTc2LjggNTUuOSwxNzUuNkw1NC41OSwxNzIuMjMxTDQ0LjgzNSw1Ni40Nkw0Ny45LDU2QzUwLjUsNTUuNiA1NC4zLDU1IDU5LjUsNTQuMkM2NC42LDUzLjQgNjguNCw1Mi44IDcwLjYsNTIuNEM3Mi44LDUyIDc1LjgsNTEuNSA3OS41LDUwLjdDODMuMiw0OS45IDg2LjQsNDkuMiA4OS4xLDQ4LjVDOTEuNyw0Ny44IDk0LjEsNDcuMiA5Niw0Ni42Qzk4LDQ2IDk5LjUsNDUuNiAxMDAuNiw0NS4yQzEwMS43LDQ0LjggMTAyLjcsNDQuNSAxMDMuNyw0NC4yQzEwNC43LDQzLjggMTA2LjcsNDMuMiAxMDkuNyw0Mi4xTDExMS41NSw0MS40MTlMMTczLjUzNCwzNS40ODNaIiBzdHlsZT0iZmlsbDpyZ2IoMTU4LDE2MywxNjgpOyIvPgogICAgICAgIDwvZz4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjMwMDc4LDAuMTE2ODUzLC0wLjEwOTYwNywxLjIyMDEyLC0zMy4zMzE2LC00NC40NzE2KSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xODcuNzc3LDI1MC4wODJMMTg1LjEsMjUyLjNDMTg0LjcsMjUyLjYgMTgzLjcsMjUzLjUgMTgyLDI1NC44TDE3OS4yNTQsMjU2Ljk2M0wxMjYuMDc4LDI2Mi4wNTZMMTI2LDI2MkMxMjUuMiwyNjEuNCAxMjQuMSwyNjAuNiAxMjIuOCwyNTkuNkMxMjEuNSwyNTguNSAxMjAuNCwyNTcuNyAxMTkuNCwyNTYuOUwxMTkuMDk2LDI1Ni42NkwxNDMuODc0LDI1NC4yODdMMTQ0LjUsMjU0LjZDMTQ1LjksMjU1LjMgMTQ2LjksMjU1LjcgMTQ3LjUsMjU2QzE0OC4xLDI1Ni4zIDE0OC43LDI1Ni41IDE0OS4yLDI1Ni42TDE1MCwyNTYuOEwxNTAuNywyNTYuNkMxNTEuMiwyNTYuNCAxNTIsMjU2LjEgMTUzLjIsMjU1LjZDMTU0LjQsMjU1IDE1NS40LDI1NC42IDE1Ni4zLDI1NC4yQzE1Ny4yLDI1My44IDE1Ny43LDI1My42IDE1OCwyNTMuNEwxNTguODE3LDI1Mi44NTZMMTg3Ljc3NywyNTAuMDgyWiIgc3R5bGU9ImZpbGw6cmdiKDE1OCwxNjMsMTY4KTsiLz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4zMDA3OCwwLjExNjg1MywtMC4xMDk2MDcsMS4yMjAxMiwtMzMuMzMxNiwtNDQuNDcxNikiPgogICAgICAgICAgICA8cGF0aCBkPSJNNDQuODM1LDU2LjQ2TDU0LjU5LDE3Mi4yMzFMNTMuOCwxNzAuMkM1Mi45LDE2Ny44IDUyLDE2NS4yIDUxLjEsMTYyLjVDNTAuMiwxNTkuOCA0OS4yLDE1Ni40IDQ4LjEsMTUyLjVDNDcsMTQ4LjUgNDYuMiwxNDUuNiA0NS44LDE0My43TDQ1LjE5NSwxNDEuMDI2TDM4Ljc0NSw2NC40NzJMMzguNyw2Mi40TDM4LjcsNTcuN0wzOS4yLDU3LjVDMzkuNiw1Ny4zIDQwLjUsNTcuMSA0MS45LDU2LjlMNDQuODM1LDU2LjQ2WiIgc3R5bGU9ImZpbGw6cmdiKDE1OCwxNjMsMTY4KTsiLz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4zMDA3OCwwLjExNjg1MywtMC4xMDk2MDcsMS4yMjAxMiwtMzMuMzMxNiwtNDQuNDcxNikiPgogICAgICAgICAgICA8cGF0aCBkPSJNMjUwLjQsNTUuNUwyNTMuMjExLDU2LjAyMUwyNTcuOSwxMTEuNjY1TDI1Ny42LDExNi41QzI1Ny4yLDEyMC44IDI1Ni44LDEyNC40IDI1Ni40LDEyNy41QzI1NS45LDEzMC42IDI1NS40LDEzMy41IDI1NC44LDEzNi4yTDI1NC40MTgsMTM3Ljg2N0wyNDcuNDQyLDU1LjA3N0wyNTAuNCw1NS41WiIgc3R5bGU9ImZpbGw6cmdiKDE1OCwxNjMsMTY4KTsiLz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4zMDA3OCwwLjExNjg1MywtMC4xMDk2MDcsMS4yMjAxMiwtMzMuMzMxNiwtNDQuNDcxNikiPgogICAgICAgICAgICA8cGF0aCBkPSJNMTU5LjYxNSwyOS40NEwxNjAuOCwzMEMxNjEuNywzMC40IDE2NC44LDMxLjcgMTcwLDM0TDE3My41MzQsMzUuNDgzTDExMS41NSw0MS40MTlDMTEzLjg3Miw0MC41NzQgMTE2LjA0OCwzOS43NjggMTE4LjEsMzguOUMxMjAuNywzNy45IDEyMi4xLDM3LjMgMTIyLjMsMzcuM0MxMjIuNSwzNy4zIDEyMy44LDM2LjggMTI2LjEsMzUuOEMxMjguNSwzNC44IDEzMC42LDMzLjkgMTMyLjUsMzMuMUwxMzUuNTMyLDMxLjc0NkwxNTkuNjE1LDI5LjQ0WiIgc3R5bGU9ImZpbGw6cmdiKDE1OCwxNjMsMTY4KTsiLz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4zMTM3NDIsMC4wNTIzODQ4LC0wLjA1MjM4NDgsMC4zMTM3NDIsODAuNTg4LDQ2LjkyNTgpIj4KICAgICAgICAgICAgPHBhdGggZD0iTTM0OS41NjUsOTguNzgzQzI5NS45NzgsOTguNzgzIDI1MS43MjEsNjQgMTg0LjM0OCw2NEMxNTkuMzkzLDY0IDEzNy4wMzksNjguMzg0IDExNi4zMDMsNzYuMDEzQzExOS4xNzcsNjguNTA4IDEyMC40LDYwLjQ3MSAxMTkuODg5LDUyLjQ1MUMxMTguMTE3LDI0LjAxNSA5NC44MDYsMS4yMDYgNjYuMzM4LDAuMDQ4QzM0LjM0NSwtMS4yNTQgOCwyNC4yOTYgOCw1NkM4LDc1LjAyNiAxNy40OTcsOTEuODI1IDMyLDEwMS45NDVMMzIsNDg4QzMyLDUwMS4yNTUgNDIuNzQ1LDUxMiA1Niw1MTJMNzIsNTEyQzg1LjI1NSw1MTIgOTYsNTAxLjI1NSA5Niw0ODhMOTYsMzkzLjZDMTI0LjMxMSwzODEuNTM2IDE1OS41ODIsMzcxLjQ3OCAyMTAuNDM1LDM3MS40NzhDMjY0LjAyMywzNzEuNDc4IDMwOC4yNzksNDA2LjI2MSAzNzUuNjUyLDQwNi4yNjFDNDIzLjgyMSw0MDYuMjYxIDQ2Mi4zMTksMzg5Ljk2NyA0OTguMTU3LDM2NS40MDNDNTA2Ljg0LDM1OS40NTIgNTEyLDM0OS41NzEgNTEyLDMzOS4wNDVMNTEyLDk1Ljk0NUM1MTIsNzIuNTUyIDQ4Ny43MzEsNTcuMDc1IDQ2Ni41MTUsNjYuOTI5QzQzMi4xNzcsODIuODc3IDM5MC4wNjEsOTguNzgzIDM0OS41NjUsOTguNzgzWiIgc3R5bGU9ImZpbGw6cmdiKDE1OCwxNjMsMTY4KTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPgo='; | |
| 8 | + public $svg_icon = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDMyIDMyIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MjsiPgogICAgPHBhdGggZD0iTTE2LDBDMTQuMTAxLDAuNzMgMTEuOTI5LDEuMjkzIDkuNTk1LDEuNjE3QzcuMTk5LDEuOTUgNC44OTksMS45OTQgMi44MzMsMS43OTFDMi41OTMsMi44IDIuNDY2LDMuODUyIDIuNDY2LDQuOTMyTDIuNDY2LDE4LjQ2NkMyLjQ2NiwyNS45MzYgMTYsMzIgMTYsMzJDMTYsMzIgMjkuNTM0LDI1LjkzNiAyOS41MzQsMTguNDY2TDI5LjUzNCw0LjkzMkMyOS41MzQsMy44NTIgMjkuNDA3LDIuOCAyOS4xNjcsMS43OTFDMjcuMSwxLjk5NCAyNC44MDEsMS45NSAyMi40MDUsMS42MTdDMjAuMDcxLDEuMjkzIDE3Ljg5OSwwLjczIDE2LDBaTTE2LDIuNDY2QzE3LjYwNiwzLjA4MyAxOS40NDQsMy41NiAyMS40MTgsMy44MzRDMjMuNDQ0LDQuMTE1IDI1LjM4OSw0LjE1MiAyNy4xMzgsMy45ODFDMjcuMzQxLDQuODM0IDI3LjQ0OSw1LjcyNCAyNy40NDksNi42MzhMMjcuNDQ5LDE4LjA4NkMyNy40NDksMjQuNDA1IDE2LjAwMSwyOS41MzQgMTYuMDAxLDI5LjUzNEMxNi4wMDEsMjkuNTM0IDQuNTUzLDI0LjQwNCA0LjU1MywxOC4wODZMNC41NTMsNi42MzhDNC41NTMsNS43MjMgNC42Niw0LjgzNSA0Ljg2NCwzLjk4MUM2LjYxMiw0LjE1MiA4LjU1Nyw0LjExNSAxMC41ODQsMy44MzRDMTIuNTU4LDMuNTYgMTQuMzk2LDMuMDgzIDE2LjAwMiwyLjQ2NkwxNiwyLjQ2NlpNMTYsNC4wOUMxNC41ODcsNC42MzMgMTIuOTcsNS4wNTMgMTEuMjMyLDUuMjk0QzkuNDQ5LDUuNTQxIDcuNzM3LDUuNTc0IDYuMTk5LDUuNDI0QzYuMDIxLDYuMTc1IDUuOTI2LDYuOTU4IDUuOTI2LDcuNzYyTDUuOTI2LDE3LjgzNkM1LjkyNiwyMy4zOTcgMTYsMjcuOTExIDE2LDI3LjkxMUMxNiwyNy45MTEgMjYuMDc0LDIzLjM5NyAyNi4wNzQsMTcuODM2TDI2LjA3NCw3Ljc2MkMyNi4wNzQsNi45NTggMjUuOTc5LDYuMTc1IDI1LjgwMSw1LjQyNEMyNC4yNjMsNS41NzUgMjIuNTUxLDUuNTQyIDIwLjc2OCw1LjI5NEMxOS4wMyw1LjA1MiAxNy40MTMsNC42MzMgMTYsNC4wOVpNMTguODU3LDIwLjI4NUwxNiwxNy44MjhMMTMuMTQzLDIwLjI4NUwxMy4xNDMsMTEuNzE0TDE4Ljg1NywxMS43MTRMMTguODU3LDIwLjI4NVoiIHN0eWxlPSJmaWxsOnJnYigxNjcsMTcwLDE3Myk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+Cjwvc3ZnPgo='; | |
| 7 | 9 | |
| 8 | - public $enqueue = true; | |
| 9 | - public $cap = 'gd-security-headers-standard'; | |
| 10 | - public $plugin = 'gd-security-headers'; | |
| 10 | + public $enqueue = true; | |
| 11 | + public $cap = 'gd-security-headers-standard'; | |
| 12 | + public $plugin = 'gd-security-headers'; | |
| 11 | 13 | |
| 12 | - /** @var d4p_datetime_core */ | |
| 13 | - public $datetime; | |
| 14 | + /** @var d4p_datetime_core */ | |
| 15 | + public $datetime; | |
| 14 | 16 | |
| 15 | - private $_ip; | |
| 16 | - private $_ua; | |
| 17 | + private $_ip; | |
| 18 | + private $_ua; | |
| 17 | 19 | |
| 18 | - public function __construct() { | |
| 19 | - parent::__construct(); | |
| 20 | + /** @var bool|gdsih_component_csp */ | |
| 21 | + private $_csp = false; | |
| 22 | + /** @var bool|gdsih_component_xxp */ | |
| 23 | + private $_xxp = false; | |
| 24 | + /** @var bool|gdsih_component_headers */ | |
| 25 | + private $_hdr = false; | |
| 26 | + /** @var bool|gdsih_component_feature_policy */ | |
| 27 | + private $_fep = false; | |
| 20 | 28 | |
| 21 | - if (!defined('GDSIH_HTACCESS_FILE_NAME')) { | |
| 22 | - define('GDSIH_HTACCESS_FILE_NAME', '.htaccess'); | |
| 23 | - } | |
| 29 | + public function __construct() { | |
| 30 | + parent::__construct(); | |
| 24 | 31 | |
| 25 | - $this->url = GDSIH_URL; | |
| 26 | - $this->datetime = new d4p_datetime_core(); | |
| 27 | - } | |
| 32 | + if ( ! defined( 'GDSIH_HTACCESS_FILE_NAME' ) ) { | |
| 33 | + define( 'GDSIH_HTACCESS_FILE_NAME', '.htaccess' ); | |
| 34 | + } | |
| 28 | 35 | |
| 29 | - public function ip() { | |
| 30 | - return $this->_ip; | |
| 31 | - } | |
| 36 | + $this->url = GDSIH_URL; | |
| 37 | + $this->datetime = new d4p_datetime_core(); | |
| 38 | + } | |
| 32 | 39 | |
| 33 | - public function ua() { | |
| 34 | - return $this->_ua; | |
| 35 | - } | |
| 40 | + public function ip() { | |
| 41 | + return $this->_ip; | |
| 42 | + } | |
| 36 | 43 | |
| 37 | - public function plugins_loaded() { | |
| 38 | - parent::plugins_loaded(); | |
| 44 | + public function ua() { | |
| 45 | + return $this->_ua; | |
| 46 | + } | |
| 39 | 47 | |
| 40 | - $this->_ip = d4p_visitor_ip(); | |
| 41 | - $this->_ua = d4p_user_agent(); | |
| 48 | + public function plugins_loaded() { | |
| 49 | + parent::plugins_loaded(); | |
| 42 | 50 | |
| 43 | - define('GDSIH_WPV', intval($this->wp_version)); | |
| 44 | - define('GDSIH_WPV_MAJOR', substr($this->wp_version, 0, 3)); | |
| 45 | - define('GDSIH_WP_VERSION', $this->wp_version_real); | |
| 51 | + $this->_ip = d4p_visitor_ip(); | |
| 52 | + $this->_ua = $this->make_serialized_invalid( sanitize_text_field( d4p_user_agent() ) ); | |
| 46 | 53 | |
| 47 | - do_action('gdsih_load_settings'); | |
| 54 | + define( 'GDSIH_WPV', intval( $this->wp_version ) ); | |
| 55 | + define( 'GDSIH_WPV_MAJOR', substr( $this->wp_version, 0, 3 ) ); | |
| 56 | + define( 'GDSIH_WP_VERSION', $this->wp_version_real ); | |
| 48 | 57 | |
| 49 | - do_action('gdsih_plugin_init'); | |
| 58 | + do_action( 'gdsih_load_settings' ); | |
| 50 | 59 | |
| 51 | - $this->load(); | |
| 52 | - } | |
| 60 | + do_action( 'gdsih_plugin_init' ); | |
| 53 | 61 | |
| 54 | - public function load() { | |
| 55 | - add_action('gdsih_saved_the_settings', array($this, 'htaccess')); | |
| 62 | + $this->load(); | |
| 63 | + } | |
| 56 | 64 | |
| 57 | - if (gdsih_settings()->get('mode', 'csp') != 'disable') { | |
| 58 | - require_once(GDSIH_PATH.'core/objects/core.csp.build.php'); | |
| 59 | - require_once(GDSIH_PATH.'core/objects/core.csp.php'); | |
| 65 | + public function load() { | |
| 66 | + add_action( 'gdsih_saved_the_settings', array( $this, 'htaccess' ) ); | |
| 60 | 67 | |
| 61 | - new gdsih_component_csp(); | |
| 62 | - } | |
| 68 | + if ( gdsih_settings()->get( 'mode', 'csp' ) != 'disable' ) { | |
| 69 | + require_once( GDSIH_PATH . 'core/objects/core.csp.build.php' ); | |
| 70 | + require_once( GDSIH_PATH . 'core/objects/core.csp.php' ); | |
| 63 | 71 | |
| 64 | - if (gdsih_settings()->get('x_xss_protection', 'xxp')) { | |
| 65 | - require_once(GDSIH_PATH.'core/objects/core.xxp.php'); | |
| 72 | + $this->_csp = new gdsih_component_csp(); | |
| 73 | + } | |
| 66 | 74 | |
| 67 | - new gdsih_component_xxp(); | |
| 68 | - } | |
| 75 | + if ( gdsih_settings()->get( 'x_xss_protection', 'xxp' ) ) { | |
| 76 | + require_once( GDSIH_PATH . 'core/objects/core.xxp.php' ); | |
| 69 | 77 | |
| 70 | - require_once(GDSIH_PATH.'core/objects/core.headers.php'); | |
| 78 | + $this->_xxp = new gdsih_component_xxp(); | |
| 79 | + } | |
| 71 | 80 | |
| 72 | - new gdsih_component_headers(); | |
| 73 | - } | |
| 81 | + if ( gdsih_settings()->get( 'protection', 'feature' ) ) { | |
| 82 | + require_once( GDSIH_PATH . 'core/objects/core.feature.build.php' ); | |
| 83 | + require_once( GDSIH_PATH . 'core/objects/core.feature.php' ); | |
| 74 | 84 | |
| 75 | - public function htaccess() { | |
| 76 | - require_once(GDSIH_PATH.'core/objects/core.htaccess.php'); | |
| 85 | + $this->_fep = new gdsih_component_feature_policy(); | |
| 86 | + } | |
| 77 | 87 | |
| 78 | - $htaccess = new gdsih_core_htaccess(); | |
| 79 | - $status = $htaccess->check(); | |
| 88 | + require_once( GDSIH_PATH . 'core/objects/core.headers.php' ); | |
| 80 | 89 | |
| 81 | - if ($status['automatic']) { | |
| 82 | - gdsih_settings()->set('htaccess_available', true, 'core'); | |
| 90 | + $this->_hdr = new gdsih_component_headers(); | |
| 91 | + } | |
| 83 | 92 | |
| 84 | - if (gdsih_settings()->get('htaccess')) { | |
| 85 | - gdsih_settings()->set('htaccess_added', true, 'core'); | |
| 93 | + public function htaccess() { | |
| 94 | + require_once( GDSIH_PATH . 'core/objects/core.htaccess.php' ); | |
| 86 | 95 | |
| 87 | - $htaccess->write(); | |
| 88 | - } else { | |
| 89 | - gdsih_settings()->set('htaccess_added', false, 'core'); | |
| 96 | + $htaccess = new gdsih_core_htaccess(); | |
| 97 | + $status = $htaccess->check(); | |
| 90 | 98 | |
| 91 | - $htaccess->reset(); | |
| 92 | - } | |
| 99 | + if ( $status['automatic'] ) { | |
| 100 | + gdsih_settings()->set( 'htaccess_available', true, 'core' ); | |
| 93 | 101 | |
| 94 | - gdsih_settings()->save('core'); | |
| 95 | - } | |
| 96 | - } | |
| 102 | + if ( gdsih_settings()->get( 'htaccess' ) ) { | |
| 103 | + gdsih_settings()->set( 'htaccess_added', true, 'core' ); | |
| 104 | + | |
| 105 | + $htaccess->write(); | |
| 106 | + } else { | |
| 107 | + gdsih_settings()->set( 'htaccess_added', false, 'core' ); | |
| 108 | + | |
| 109 | + $htaccess->reset(); | |
| 110 | + } | |
| 111 | + | |
| 112 | + gdsih_settings()->save( 'core' ); | |
| 113 | + } | |
| 114 | + } | |
| 115 | + | |
| 116 | + public function build_headers_to_array() : array { | |
| 117 | + $list = array(); | |
| 118 | + | |
| 119 | + if ( $this->_csp !== false ) { | |
| 120 | + $list['content-security-policy'] = $this->_csp->csp->build( true ); | |
| 121 | + } | |
| 122 | + | |
| 123 | + if ( $this->_xxp !== false ) { | |
| 124 | + $list['x-xss-protection'] = $this->_xxp->build( true ); | |
| 125 | + } | |
| 126 | + | |
| 127 | + if ( $this->_fep !== false ) { | |
| 128 | + $headers = $this->_fep->fep->build( true ); | |
| 129 | + | |
| 130 | + if ( ! empty( $headers ) ) { | |
| 131 | + foreach ( $headers as $header ) { | |
| 132 | + $parts = explode( ' ', $header, 2 ); | |
| 133 | + $list[ strtolower( $parts[0] ) ] = $header; | |
| 134 | + } | |
| 135 | + } | |
| 136 | + } | |
| 137 | + | |
| 138 | + $list += $this->_hdr->build( true ); | |
| 139 | + | |
| 140 | + return $list; | |
| 141 | + } | |
| 142 | + | |
| 143 | + private function make_serialized_invalid( $input ) { | |
| 144 | + if ( ! is_string( $input ) || empty( $input ) ) { | |
| 145 | + return $input; | |
| 146 | + } | |
| 147 | + | |
| 148 | + if ( is_serialized( $input ) ) { | |
| 149 | + return 'INVALID__' . $input; | |
| 150 | + } | |
| 151 | + | |
| 152 | + return $input; | |
| 153 | + } | |
| 97 | 154 | } |