85 lines
2.5 KiB
Plaintext
85 lines
2.5 KiB
Plaintext
<%@language="javascript"%>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: Shared/csp_report.asp
|
|
Description: FUTURE USE: De browser rapporteert een overtreding van de Content-Security-Policy aan deze pagina
|
|
Momenteel is report-uri deprecated en bovendien niet goed geimplementeerd in Firefox (https://bugzilla.mozilla.org/show_bug.cgi?id=1140266)
|
|
Dat laatste zorgt ervoor dat Facilitor de pagina niet geauthenticeerd kan aanvragen waardoor het eerder een risico is dan dat het wat oplost.
|
|
Het alternatief; report-to, is momenteel nog niet voldoende door browsers ondersteund.
|
|
Daarom laten we het rapporteren van CSP violations nog even achterwege.
|
|
|
|
Note: De ingestelde CSP-header heeft iets geblokkeerd, dat loggen we hier
|
|
*/
|
|
|
|
DOCTYPE_Disable = 1;
|
|
|
|
%>
|
|
<!-- #include file="../Shared/common.inc" -->
|
|
<%
|
|
|
|
// Kopie uit api.inc
|
|
function BytesToStr(bytes)
|
|
{
|
|
var stream = Server.CreateObject("ADODB.STREAM");
|
|
stream.type = 1;
|
|
stream.open;
|
|
stream.write(bytes);
|
|
stream.position = 0;
|
|
stream.type = 2; // Text
|
|
stream.charset = "utf-8";
|
|
|
|
// Mogelijk was het nog utf-8. Dat is riskant met unicode quotes (FCLT#60591)
|
|
// Daarom expliciete conversie
|
|
var win1252Stream = new ActiveXObject("ADODB.Stream");
|
|
win1252Stream.Open();
|
|
win1252Stream.CharSet = "Windows-1252"; // het doel
|
|
stream.copyTo(win1252Stream);
|
|
stream.close;
|
|
|
|
win1252Stream.position = 0;
|
|
|
|
var ReadBytes = 131072; // optimaal volgens https://docs.microsoft.com/en-us/sql/ado/reference/ado-api/readtext-method?view=sql-server-ver15
|
|
var sOut = "";
|
|
while (!win1252Stream.EOS)
|
|
{
|
|
sOut = sOut + win1252Stream.ReadText(ReadBytes);
|
|
}
|
|
win1252Stream.close;
|
|
|
|
return sOut;
|
|
}
|
|
|
|
function RequestJSON()
|
|
{
|
|
var raw_request;
|
|
if (Request.TotalBytes > 0)
|
|
{
|
|
var lngBytesCount = Request.TotalBytes;
|
|
raw_request = BytesToStr(Request.BinaryRead(lngBytesCount));
|
|
}
|
|
try
|
|
{
|
|
var csp_report = JSON.parse(raw_request);
|
|
}
|
|
catch (e)
|
|
{
|
|
__DoLog("JSON.parse faalt met: {0}<br>{1}".format(e.description, raw_request), "#f00");
|
|
return {};
|
|
}
|
|
return csp_report;
|
|
}
|
|
|
|
var csp_report = RequestJSON();
|
|
|
|
__DoLog("Content Security Policy overtreding, S(\"csp-header\") te streng afgesteld?", "#f00");
|
|
__DoLog(csp_report);
|
|
|
|
Response.Status = 204; // No content
|
|
Response.End;
|
|
|
|
|
|
%>
|
|
<% ASPPAGE_END(); %>
|