Når du har unoeuro (der er også andre som bruge samme) som webhost, så har du automatisk deres sikkerheds software, som gør at når man forsøge at tilgå en mistænkelig URL (ifølge softwaren). Det er et meget smart system til sikkerhed, men hvis man nu faktisk skal benytte den URl som den brokker sig over, så vil man stå i problemer.

Problemet opstår fordi at Unoeuro har mod_security aktiveret og den vil derfor forsøg at stoppe eventuelle angreb.
ssecurity-incident-detected
En ting som ofte vil skabe sådan en fejl er hvis man har lavet API’er og benytter GET til at modtage data. POST data gør det samme, men oftest (for mig) at det er de ting i GET som skaber problemer. Dette sker for mig hele tiden, med de forskkellige værktøjer jeg har (CSS optimering, JS optimering og forskellige API’er).

Det er voldsomt irriterende når man ikke ved hvad man skal gøre ved det. Du får derfor nogle eksempler her:

Eksempel URL: http://xxxxxxx/api.php?site=http://xxxxx&backendUrl=url1

Problemet med denne URL er at den indeholder http://, hvilket ikke er “tilladt”. For at undgå fejlen og kunne se det man forventede kan man gøre flere ting. Den nemmeste måde, men også mest usikre er at slå det hele fra. Dette gøres ved at skrive følgende i sin .htaccess fil:

 

<IfModule mod_security.c>
  SecFilterEngine Off
  SecFilterScanPOST Off
</IfModule>

 

En anden løsning, som er lidt bedre i forhold til at slå fra overalt, er at slå mod_decurity fra kun på den fil man arbejder med. Som gøres på følgende måde:

<files api.php>
SecFilterEngine Off
SecFilterScanPOST Off
</files>

Jeg vil dog til enhver tid anbefale at man forsøger at undgå at slå mod_security fra og kun sende data som kan komme igennem det, i eksemplet ovenover er det meget nemt. Fjern http:// og erstat den del med en &protocol=http så vil man få samme data, bare splittet lidt op. Den nye URL ville så se sådan ud:  http://xxxxxxx/api.php?site=xxxxx&protocol=http&backendUrl=url1

Er det ikke din URL som er problemet, men din data du sender og ønsker du ikke at slå mod_security fra på den del af siden, som skaber problemer. Så er den straks lidt sværere, for du skal nu til at finde den præcise del af din data som skaber fejl, en ide kan dog være er erstatte alle tegn ( @£$€{

[‘¨]} ) med noget andet, så du på modtager siden kan lave det tilbage som det skal være.