Test Setup Failed
Push — master ( c52cc2...15cb66 )
by Alex
08:15 queued 04:03
created

ODataController::getIsDumping()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 4
ccs 0
cts 0
cp 0
rs 10
cc 1
eloc 2
nc 1
nop 0
crap 2
1
<?php
2
3
namespace AlgoWeb\PODataLaravel\Controllers;
4
5
use Illuminate\Http\Request;
6
use Illuminate\Http\Response;
7
use AlgoWeb\PODataLaravel\Controllers\Controller as BaseController;
8
use Illuminate\Support\Facades\App;
9
use Illuminate\Support\Facades\Storage;
10
use POData\OperationContext\ServiceHost as ServiceHost;
11
use POData\SimpleDataService as DataService;
12
use POData\OperationContext\Web\Illuminate\IlluminateOperationContext as OperationContextAdapter;
13
use voku\helper\AntiXSS;
14
15
class ODataController extends BaseController
16
{
17
    /**
18
     * Display a listing of the resource.
19
     *
20
     * @return \Illuminate\Http\Response
21
     */
22
    public function index(Request $request, $dump = false)
23
    {
24
        $dump = $dump || $this->getIsDumping();
25
        //$antiXss = new AntiXSS();
0 ignored issues
show
Unused Code Comprehensibility introduced by
50% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
26
        $op = new OperationContextAdapter($request);
27
        $host = new ServiceHost($op, $request);
28
        $host->setServiceUri("/odata.svc/");
29
30
        $query = App::make('odataquery');
31
        $meta = App::make('metadata');
32
33
        $service = new DataService($query, $meta, $host);
34
        $service->handleRequest();
35
36
        $odataResponse = $op->outgoingResponse();
37
38
        if (true === $dump) {
39
            // iff XTest header is set, containing class and method name
40
            // dump outgoing odataResponse, metadata, and incoming request
41
            $xTest = $request->header('XTest');
42
            $xTest = (null !== $xTest) ? $xTest : $request->method() . ";" . str_replace("/", "-", $request->path());
43
            if (null != $xTest) {
44
                $cerealRequest = serialize($request);
45
                $cerealMeta = serialize($meta);
46
                $cerealResponse = serialize($odataResponse);
47
                Storage::put($xTest.'request', $cerealRequest);
48
                Storage::put($xTest.'metadata', $cerealMeta);
49
                Storage::put($xTest.'response', $cerealResponse);
50
            }
51
        }
52
53
        $content = $odataResponse->getStream();
54
        //$content = $antiXss->xss_clean($content);
0 ignored issues
show
Unused Code Comprehensibility introduced by
64% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
55
        $headers = $odataResponse->getHeaders();
56
        $responseCode = $headers[\POData\Common\ODataConstants::HTTPRESPONSE_HEADER_STATUS_CODE];
57
        $responseCode = isset($responseCode) ? intval($responseCode) : 200;
58
        $response = new Response($content, $responseCode);
0 ignored issues
show
Security Cross-Site Scripting introduced by
$content can contain request data and is used in output context(s) leading to a potential security vulnerability.

9 paths for user data to reach this point

  1. Path: Fetching key HTTP_HOST from $_SERVER in src/POData/OperationContext/SimpleRequestAdapter.php on line 23
  1. Fetching key HTTP_HOST from $_SERVER
    in vendor/src/POData/OperationContext/SimpleRequestAdapter.php on line 23
  2. SimpleRequestAdapter::getRawUrl() returns tainted data, and ServiceHost::$_absoluteRequestUriAsString is assigned
    in vendor/src/POData/OperationContext/ServiceHost.php on line 121
  3. Tainted property ServiceHost::$_absoluteRequestUriAsString is read, and $this->_absoluteRequestUriAsString is passed to Url::__construct()
    in vendor/src/POData/OperationContext/ServiceHost.php on line 124
  4. Url::$_urlAsString is assigned
    in vendor/src/POData/Common/Url.php on line 52
  5. Tainted property Url::$_urlAsString is read
    in vendor/src/POData/Common/Url.php on line 62
  6. Url::getUrlAsString() returns tainted data, and $this->getRequest()->getRequestUrl()->getUrlAsString() is passed to ObjectModelSerializerBase::getNextLinkUri()
    in vendor/src/POData/ObjectModel/ObjectModelSerializer.php on line 161
  7. $absoluteUri is passed through rtrim(), and ODataLink::$url is assigned
    in vendor/src/POData/ObjectModel/ObjectModelSerializerBase.php on line 435
  8. Tainted property ODataLink::$url is read, and $nextPageLinkUri->url is passed to JsonWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonODataV2Writer.php on line 153
  9. $value is passed to JsonWriter::_writeCore()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 138
  10. $text is passed to IndentedTextWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 231
  11. $value is passed to IndentedTextWriter::_write()
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 59
  12. IndentedTextWriter::$result is assigned
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 143
  13. Tainted property IndentedTextWriter::$result is read
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 122
  14. IndentedTextWriter::getResult() returns tainted data
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 276
  15. JsonWriter::getJsonOutput() returns tainted data
    in vendor/src/POData/Writers/Json/JsonODataV1Writer.php on line 432
  16. JsonODataV1Writer::serializeException() returns tainted data, and $responseBody is assigned
    in vendor/src/POData/Common/ErrorHandler.php on line 63
  17. $responseBody is passed to OutgoingResponse::setStream()
    in vendor/src/POData/Common/ErrorHandler.php on line 66
  18. OutgoingResponse::$_stream is assigned
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 205
  19. Tainted property OutgoingResponse::$_stream is read
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 195
  20. OutgoingResponse::getStream() returns tainted data, and $content is assigned
    in src/Controllers/ODataController.php on line 53
  2. Path: $this->parameters['HTTP_AUTHORIZATION'] seems to return tainted data, and $authorizationHeader is assigned in ServerBag.php on line 62
  1. $this->parameters['HTTP_AUTHORIZATION'] seems to return tainted data, and $authorizationHeader is assigned
    in vendor/ServerBag.php on line 62
  2. ParameterBag::$parameters is assigned
    in vendor/ServerBag.php on line 77
  3. Tainted property ParameterBag::$parameters is read
    in vendor/ParameterBag.php on line 88
  4. ParameterBag::get() returns tainted data
    in vendor/Request.php on line 1007
  5. Request::getPort() returns tainted data, and $port is assigned
    in vendor/Request.php on line 1070
  6. Request::getHttpHost() returns tainted data
    in vendor/Request.php on line 1103
  7. Request::getSchemeAndHttpHost() returns tainted data
    in vendor/Request.php on line 1119
  8. Request::getUri() returns tainted data, and $this->getUri() is passed through preg_replace(), and preg_replace('/\\?.*/', '', $this->getUri()) is passed through rtrim()
    in vendor/src/Illuminate/Http/Request.php on line 99
  9. Request::url() returns tainted data
    in vendor/src/Illuminate/Http/Request.php on line 113
  10. Request::fullUrl() returns tainted data, and IncomingIlluminateRequest::$rawUrl is assigned
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 73
  11. Tainted property IncomingIlluminateRequest::$rawUrl is read
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 75
  12. IncomingIlluminateRequest::getRawUrl() returns tainted data, and ServiceHost::$_absoluteRequestUriAsString is assigned
    in vendor/src/POData/OperationContext/ServiceHost.php on line 121
  13. Tainted property ServiceHost::$_absoluteRequestUriAsString is read, and $this->_absoluteRequestUriAsString is passed to Url::__construct()
    in vendor/src/POData/OperationContext/ServiceHost.php on line 124
  14. Url::$_urlAsString is assigned
    in vendor/src/POData/Common/Url.php on line 52
  15. Tainted property Url::$_urlAsString is read
    in vendor/src/POData/Common/Url.php on line 62
  16. Url::getUrlAsString() returns tainted data, and $this->getRequest()->getRequestUrl()->getUrlAsString() is passed to ObjectModelSerializerBase::getNextLinkUri()
    in vendor/src/POData/ObjectModel/ObjectModelSerializer.php on line 161
  17. $absoluteUri is passed through rtrim(), and ODataLink::$url is assigned
    in vendor/src/POData/ObjectModel/ObjectModelSerializerBase.php on line 435
  18. Tainted property ODataLink::$url is read, and $nextPageLinkUri->url is passed to JsonWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonODataV2Writer.php on line 153
  19. $value is passed to JsonWriter::_writeCore()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 138
  20. $text is passed to IndentedTextWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 231
  21. $value is passed to IndentedTextWriter::_write()
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 59
  22. IndentedTextWriter::$result is assigned
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 143
  23. Tainted property IndentedTextWriter::$result is read
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 122
  24. IndentedTextWriter::getResult() returns tainted data
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 276
  25. JsonWriter::getJsonOutput() returns tainted data
    in vendor/src/POData/Writers/Json/JsonODataV1Writer.php on line 432
  26. JsonODataV1Writer::serializeException() returns tainted data, and $responseBody is assigned
    in vendor/src/POData/Common/ErrorHandler.php on line 63
  27. $responseBody is passed to OutgoingResponse::setStream()
    in vendor/src/POData/Common/ErrorHandler.php on line 66
  28. OutgoingResponse::$_stream is assigned
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 205
  29. Tainted property OutgoingResponse::$_stream is read
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 195
  30. OutgoingResponse::getStream() returns tainted data, and $content is assigned
    in src/Controllers/ODataController.php on line 53
  3. Path: Read from $_POST, and $_POST is passed to Request::createRequestFromFactory() in Request.php on line 317
  1. Read from $_POST, and $_POST is passed to Request::createRequestFromFactory()
    in vendor/Request.php on line 317
  2. $request is passed to Request::__construct()
    in vendor/Request.php on line 2012
  3. $request is passed to Request::initialize()
    in vendor/Request.php on line 258
  4. $request is passed to ParameterBag::__construct()
    in vendor/Request.php on line 276
  5. ParameterBag::$parameters is assigned
    in vendor/ParameterBag.php on line 35
  6. Tainted property ParameterBag::$parameters is read
    in vendor/ParameterBag.php on line 88
  7. ParameterBag::get() returns tainted data
    in vendor/Request.php on line 1007
  8. Request::getPort() returns tainted data, and $port is assigned
    in vendor/Request.php on line 1070
  9. Request::getHttpHost() returns tainted data
    in vendor/Request.php on line 1103
  10. Request::getSchemeAndHttpHost() returns tainted data
    in vendor/Request.php on line 1119
  11. Request::getUri() returns tainted data, and $this->getUri() is passed through preg_replace(), and preg_replace('/\\?.*/', '', $this->getUri()) is passed through rtrim()
    in vendor/src/Illuminate/Http/Request.php on line 99
  12. Request::url() returns tainted data
    in vendor/src/Illuminate/Http/Request.php on line 113
  13. Request::fullUrl() returns tainted data, and IncomingIlluminateRequest::$rawUrl is assigned
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 73
  14. Tainted property IncomingIlluminateRequest::$rawUrl is read
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 75
  15. IncomingIlluminateRequest::getRawUrl() returns tainted data, and ServiceHost::$_absoluteRequestUriAsString is assigned
    in vendor/src/POData/OperationContext/ServiceHost.php on line 121
  16. Tainted property ServiceHost::$_absoluteRequestUriAsString is read, and $this->_absoluteRequestUriAsString is passed to Url::__construct()
    in vendor/src/POData/OperationContext/ServiceHost.php on line 124
  17. Url::$_urlAsString is assigned
    in vendor/src/POData/Common/Url.php on line 52
  18. Tainted property Url::$_urlAsString is read
    in vendor/src/POData/Common/Url.php on line 62
  19. Url::getUrlAsString() returns tainted data, and $this->getRequest()->getRequestUrl()->getUrlAsString() is passed to ObjectModelSerializerBase::getNextLinkUri()
    in vendor/src/POData/ObjectModel/ObjectModelSerializer.php on line 161
  20. $absoluteUri is passed through rtrim(), and ODataLink::$url is assigned
    in vendor/src/POData/ObjectModel/ObjectModelSerializerBase.php on line 435
  21. Tainted property ODataLink::$url is read, and $nextPageLinkUri->url is passed to JsonWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonODataV2Writer.php on line 153
  22. $value is passed to JsonWriter::_writeCore()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 138
  23. $text is passed to IndentedTextWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 231
  24. $value is passed to IndentedTextWriter::_write()
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 59
  25. IndentedTextWriter::$result is assigned
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 143
  26. Tainted property IndentedTextWriter::$result is read
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 122
  27. IndentedTextWriter::getResult() returns tainted data
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 276
  28. JsonWriter::getJsonOutput() returns tainted data
    in vendor/src/POData/Writers/Json/JsonODataV1Writer.php on line 432
  29. JsonODataV1Writer::serializeException() returns tainted data, and $responseBody is assigned
    in vendor/src/POData/Common/ErrorHandler.php on line 63
  30. $responseBody is passed to OutgoingResponse::setStream()
    in vendor/src/POData/Common/ErrorHandler.php on line 66
  31. OutgoingResponse::$_stream is assigned
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 205
  32. Tainted property OutgoingResponse::$_stream is read
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 195
  33. OutgoingResponse::getStream() returns tainted data, and $content is assigned
    in src/Controllers/ODataController.php on line 53
  4. Path: Read from $_SERVER, and $server is assigned in Request.php on line 307
  1. Read from $_SERVER, and $server is assigned
    in vendor/Request.php on line 307
  2. $server is passed to Request::createRequestFromFactory()
    in vendor/Request.php on line 317
  3. $server is passed to Request::__construct()
    in vendor/Request.php on line 2012
  4. $server is passed to Request::initialize()
    in vendor/Request.php on line 258
  5. $server is passed to ParameterBag::__construct()
    in vendor/Request.php on line 281
  6. ParameterBag::$parameters is assigned
    in vendor/ParameterBag.php on line 35
  7. Tainted property ParameterBag::$parameters is read
    in vendor/ParameterBag.php on line 88
  8. ParameterBag::get() returns tainted data
    in vendor/Request.php on line 1007
  9. Request::getPort() returns tainted data, and $port is assigned
    in vendor/Request.php on line 1070
  10. Request::getHttpHost() returns tainted data
    in vendor/Request.php on line 1103
  11. Request::getSchemeAndHttpHost() returns tainted data
    in vendor/Request.php on line 1119
  12. Request::getUri() returns tainted data, and $this->getUri() is passed through preg_replace(), and preg_replace('/\\?.*/', '', $this->getUri()) is passed through rtrim()
    in vendor/src/Illuminate/Http/Request.php on line 99
  13. Request::url() returns tainted data
    in vendor/src/Illuminate/Http/Request.php on line 113
  14. Request::fullUrl() returns tainted data, and IncomingIlluminateRequest::$rawUrl is assigned
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 73
  15. Tainted property IncomingIlluminateRequest::$rawUrl is read
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 75
  16. IncomingIlluminateRequest::getRawUrl() returns tainted data, and ServiceHost::$_absoluteRequestUriAsString is assigned
    in vendor/src/POData/OperationContext/ServiceHost.php on line 121
  17. Tainted property ServiceHost::$_absoluteRequestUriAsString is read, and $this->_absoluteRequestUriAsString is passed to Url::__construct()
    in vendor/src/POData/OperationContext/ServiceHost.php on line 124
  18. Url::$_urlAsString is assigned
    in vendor/src/POData/Common/Url.php on line 52
  19. Tainted property Url::$_urlAsString is read
    in vendor/src/POData/Common/Url.php on line 62
  20. Url::getUrlAsString() returns tainted data, and $this->getRequest()->getRequestUrl()->getUrlAsString() is passed to ObjectModelSerializerBase::getNextLinkUri()
    in vendor/src/POData/ObjectModel/ObjectModelSerializer.php on line 161
  21. $absoluteUri is passed through rtrim(), and ODataLink::$url is assigned
    in vendor/src/POData/ObjectModel/ObjectModelSerializerBase.php on line 435
  22. Tainted property ODataLink::$url is read, and $nextPageLinkUri->url is passed to JsonWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonODataV2Writer.php on line 153
  23. $value is passed to JsonWriter::_writeCore()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 138
  24. $text is passed to IndentedTextWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 231
  25. $value is passed to IndentedTextWriter::_write()
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 59
  26. IndentedTextWriter::$result is assigned
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 143
  27. Tainted property IndentedTextWriter::$result is read
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 122
  28. IndentedTextWriter::getResult() returns tainted data
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 276
  29. JsonWriter::getJsonOutput() returns tainted data
    in vendor/src/POData/Writers/Json/JsonODataV1Writer.php on line 432
  30. JsonODataV1Writer::serializeException() returns tainted data, and $responseBody is assigned
    in vendor/src/POData/Common/ErrorHandler.php on line 63
  31. $responseBody is passed to OutgoingResponse::setStream()
    in vendor/src/POData/Common/ErrorHandler.php on line 66
  32. OutgoingResponse::$_stream is assigned
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 205
  33. Tainted property OutgoingResponse::$_stream is read
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 195
  34. OutgoingResponse::getStream() returns tainted data, and $content is assigned
    in src/Controllers/ODataController.php on line 53
  5. Path: Fetching key HTTP_CONTENT_LENGTH from $_SERVER, and $server is assigned in Request.php on line 310
  1. Fetching key HTTP_CONTENT_LENGTH from $_SERVER, and $server is assigned
    in vendor/Request.php on line 310
  2. $server is passed to Request::createRequestFromFactory()
    in vendor/Request.php on line 317
  3. $server is passed to Request::__construct()
    in vendor/Request.php on line 2012
  4. $server is passed to Request::initialize()
    in vendor/Request.php on line 258
  5. $server is passed to ParameterBag::__construct()
    in vendor/Request.php on line 281
  6. ParameterBag::$parameters is assigned
    in vendor/ParameterBag.php on line 35
  7. Tainted property ParameterBag::$parameters is read
    in vendor/ParameterBag.php on line 88
  8. ParameterBag::get() returns tainted data
    in vendor/Request.php on line 1007
  9. Request::getPort() returns tainted data, and $port is assigned
    in vendor/Request.php on line 1070
  10. Request::getHttpHost() returns tainted data
    in vendor/Request.php on line 1103
  11. Request::getSchemeAndHttpHost() returns tainted data
    in vendor/Request.php on line 1119
  12. Request::getUri() returns tainted data, and $this->getUri() is passed through preg_replace(), and preg_replace('/\\?.*/', '', $this->getUri()) is passed through rtrim()
    in vendor/src/Illuminate/Http/Request.php on line 99
  13. Request::url() returns tainted data
    in vendor/src/Illuminate/Http/Request.php on line 113
  14. Request::fullUrl() returns tainted data, and IncomingIlluminateRequest::$rawUrl is assigned
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 73
  15. Tainted property IncomingIlluminateRequest::$rawUrl is read
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 75
  16. IncomingIlluminateRequest::getRawUrl() returns tainted data, and ServiceHost::$_absoluteRequestUriAsString is assigned
    in vendor/src/POData/OperationContext/ServiceHost.php on line 121
  17. Tainted property ServiceHost::$_absoluteRequestUriAsString is read, and $this->_absoluteRequestUriAsString is passed to Url::__construct()
    in vendor/src/POData/OperationContext/ServiceHost.php on line 124
  18. Url::$_urlAsString is assigned
    in vendor/src/POData/Common/Url.php on line 52
  19. Tainted property Url::$_urlAsString is read
    in vendor/src/POData/Common/Url.php on line 62
  20. Url::getUrlAsString() returns tainted data, and $this->getRequest()->getRequestUrl()->getUrlAsString() is passed to ObjectModelSerializerBase::getNextLinkUri()
    in vendor/src/POData/ObjectModel/ObjectModelSerializer.php on line 161
  21. $absoluteUri is passed through rtrim(), and ODataLink::$url is assigned
    in vendor/src/POData/ObjectModel/ObjectModelSerializerBase.php on line 435
  22. Tainted property ODataLink::$url is read, and $nextPageLinkUri->url is passed to JsonWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonODataV2Writer.php on line 153
  23. $value is passed to JsonWriter::_writeCore()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 138
  24. $text is passed to IndentedTextWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 231
  25. $value is passed to IndentedTextWriter::_write()
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 59
  26. IndentedTextWriter::$result is assigned
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 143
  27. Tainted property IndentedTextWriter::$result is read
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 122
  28. IndentedTextWriter::getResult() returns tainted data
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 276
  29. JsonWriter::getJsonOutput() returns tainted data
    in vendor/src/POData/Writers/Json/JsonODataV1Writer.php on line 432
  30. JsonODataV1Writer::serializeException() returns tainted data, and $responseBody is assigned
    in vendor/src/POData/Common/ErrorHandler.php on line 63
  31. $responseBody is passed to OutgoingResponse::setStream()
    in vendor/src/POData/Common/ErrorHandler.php on line 66
  32. OutgoingResponse::$_stream is assigned
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 205
  33. Tainted property OutgoingResponse::$_stream is read
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 195
  34. OutgoingResponse::getStream() returns tainted data, and $content is assigned
    in src/Controllers/ODataController.php on line 53
  6. Path: Fetching key HTTP_CONTENT_TYPE from $_SERVER, and $server is assigned in Request.php on line 313
  1. Fetching key HTTP_CONTENT_TYPE from $_SERVER, and $server is assigned
    in vendor/Request.php on line 313
  2. $server is passed to Request::createRequestFromFactory()
    in vendor/Request.php on line 317
  3. $server is passed to Request::__construct()
    in vendor/Request.php on line 2012
  4. $server is passed to Request::initialize()
    in vendor/Request.php on line 258
  5. $server is passed to ParameterBag::__construct()
    in vendor/Request.php on line 281
  6. ParameterBag::$parameters is assigned
    in vendor/ParameterBag.php on line 35
  7. Tainted property ParameterBag::$parameters is read
    in vendor/ParameterBag.php on line 88
  8. ParameterBag::get() returns tainted data
    in vendor/Request.php on line 1007
  9. Request::getPort() returns tainted data, and $port is assigned
    in vendor/Request.php on line 1070
  10. Request::getHttpHost() returns tainted data
    in vendor/Request.php on line 1103
  11. Request::getSchemeAndHttpHost() returns tainted data
    in vendor/Request.php on line 1119
  12. Request::getUri() returns tainted data, and $this->getUri() is passed through preg_replace(), and preg_replace('/\\?.*/', '', $this->getUri()) is passed through rtrim()
    in vendor/src/Illuminate/Http/Request.php on line 99
  13. Request::url() returns tainted data
    in vendor/src/Illuminate/Http/Request.php on line 113
  14. Request::fullUrl() returns tainted data, and IncomingIlluminateRequest::$rawUrl is assigned
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 73
  15. Tainted property IncomingIlluminateRequest::$rawUrl is read
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 75
  16. IncomingIlluminateRequest::getRawUrl() returns tainted data, and ServiceHost::$_absoluteRequestUriAsString is assigned
    in vendor/src/POData/OperationContext/ServiceHost.php on line 121
  17. Tainted property ServiceHost::$_absoluteRequestUriAsString is read, and $this->_absoluteRequestUriAsString is passed to Url::__construct()
    in vendor/src/POData/OperationContext/ServiceHost.php on line 124
  18. Url::$_urlAsString is assigned
    in vendor/src/POData/Common/Url.php on line 52
  19. Tainted property Url::$_urlAsString is read
    in vendor/src/POData/Common/Url.php on line 62
  20. Url::getUrlAsString() returns tainted data, and $this->getRequest()->getRequestUrl()->getUrlAsString() is passed to ObjectModelSerializerBase::getNextLinkUri()
    in vendor/src/POData/ObjectModel/ObjectModelSerializer.php on line 161
  21. $absoluteUri is passed through rtrim(), and ODataLink::$url is assigned
    in vendor/src/POData/ObjectModel/ObjectModelSerializerBase.php on line 435
  22. Tainted property ODataLink::$url is read, and $nextPageLinkUri->url is passed to JsonWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonODataV2Writer.php on line 153
  23. $value is passed to JsonWriter::_writeCore()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 138
  24. $text is passed to IndentedTextWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 231
  25. $value is passed to IndentedTextWriter::_write()
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 59
  26. IndentedTextWriter::$result is assigned
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 143
  27. Tainted property IndentedTextWriter::$result is read
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 122
  28. IndentedTextWriter::getResult() returns tainted data
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 276
  29. JsonWriter::getJsonOutput() returns tainted data
    in vendor/src/POData/Writers/Json/JsonODataV1Writer.php on line 432
  30. JsonODataV1Writer::serializeException() returns tainted data, and $responseBody is assigned
    in vendor/src/POData/Common/ErrorHandler.php on line 63
  31. $responseBody is passed to OutgoingResponse::setStream()
    in vendor/src/POData/Common/ErrorHandler.php on line 66
  32. OutgoingResponse::$_stream is assigned
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 205
  33. Tainted property OutgoingResponse::$_stream is read
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 195
  34. OutgoingResponse::getStream() returns tainted data, and $content is assigned
    in src/Controllers/ODataController.php on line 53
  7. Path: $server['HTTP_HOST'] seems to return tainted data, and $server is assigned in Request.php on line 383
  1. $server['HTTP_HOST'] seems to return tainted data, and $server is assigned
    in vendor/Request.php on line 383
  2. $server is assigned
    in vendor/Request.php on line 431
  3. $server is assigned
    in vendor/Request.php on line 432
  4. $server is passed to Request::createRequestFromFactory()
    in vendor/Request.php on line 434
  5. $server is passed to Request::__construct()
    in vendor/Request.php on line 2012
  6. $server is passed to Request::initialize()
    in vendor/Request.php on line 258
  7. $server is passed to ParameterBag::__construct()
    in vendor/Request.php on line 281
  8. ParameterBag::$parameters is assigned
    in vendor/ParameterBag.php on line 35
  9. Tainted property ParameterBag::$parameters is read
    in vendor/ParameterBag.php on line 88
  10. ParameterBag::get() returns tainted data
    in vendor/Request.php on line 1007
  11. Request::getPort() returns tainted data, and $port is assigned
    in vendor/Request.php on line 1070
  12. Request::getHttpHost() returns tainted data
    in vendor/Request.php on line 1103
  13. Request::getSchemeAndHttpHost() returns tainted data
    in vendor/Request.php on line 1119
  14. Request::getUri() returns tainted data, and $this->getUri() is passed through preg_replace(), and preg_replace('/\\?.*/', '', $this->getUri()) is passed through rtrim()
    in vendor/src/Illuminate/Http/Request.php on line 99
  15. Request::url() returns tainted data
    in vendor/src/Illuminate/Http/Request.php on line 113
  16. Request::fullUrl() returns tainted data, and IncomingIlluminateRequest::$rawUrl is assigned
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 73
  17. Tainted property IncomingIlluminateRequest::$rawUrl is read
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 75
  18. IncomingIlluminateRequest::getRawUrl() returns tainted data, and ServiceHost::$_absoluteRequestUriAsString is assigned
    in vendor/src/POData/OperationContext/ServiceHost.php on line 121
  19. Tainted property ServiceHost::$_absoluteRequestUriAsString is read, and $this->_absoluteRequestUriAsString is passed to Url::__construct()
    in vendor/src/POData/OperationContext/ServiceHost.php on line 124
  20. Url::$_urlAsString is assigned
    in vendor/src/POData/Common/Url.php on line 52
  21. Tainted property Url::$_urlAsString is read
    in vendor/src/POData/Common/Url.php on line 62
  22. Url::getUrlAsString() returns tainted data, and $this->getRequest()->getRequestUrl()->getUrlAsString() is passed to ObjectModelSerializerBase::getNextLinkUri()
    in vendor/src/POData/ObjectModel/ObjectModelSerializer.php on line 161
  23. $absoluteUri is passed through rtrim(), and ODataLink::$url is assigned
    in vendor/src/POData/ObjectModel/ObjectModelSerializerBase.php on line 435
  24. Tainted property ODataLink::$url is read, and $nextPageLinkUri->url is passed to JsonWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonODataV2Writer.php on line 153
  25. $value is passed to JsonWriter::_writeCore()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 138
  26. $text is passed to IndentedTextWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 231
  27. $value is passed to IndentedTextWriter::_write()
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 59
  28. IndentedTextWriter::$result is assigned
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 143
  29. Tainted property IndentedTextWriter::$result is read
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 122
  30. IndentedTextWriter::getResult() returns tainted data
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 276
  31. JsonWriter::getJsonOutput() returns tainted data
    in vendor/src/POData/Writers/Json/JsonODataV1Writer.php on line 432
  32. JsonODataV1Writer::serializeException() returns tainted data, and $responseBody is assigned
    in vendor/src/POData/Common/ErrorHandler.php on line 63
  33. $responseBody is passed to OutgoingResponse::setStream()
    in vendor/src/POData/Common/ErrorHandler.php on line 66
  34. OutgoingResponse::$_stream is assigned
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 205
  35. Tainted property OutgoingResponse::$_stream is read
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 195
  36. OutgoingResponse::getStream() returns tainted data, and $content is assigned
    in src/Controllers/ODataController.php on line 53
  8. Path: $this->parameters['PHP_AUTH_USER'] seems to return tainted data, and $headers is assigned in ServerBag.php on line 43
  1. $this->parameters['PHP_AUTH_USER'] seems to return tainted data, and $headers is assigned
    in vendor/ServerBag.php on line 43
  2. $headers is assigned
    in vendor/ServerBag.php on line 44
  3. ServerBag::getHeaders() returns tainted data, and $this->server->getHeaders() is passed to HeaderBag::__construct()
    in vendor/Request.php on line 282
  4. $values is assigned
    in vendor/HeaderBag.php on line 31
  5. $values is passed to HeaderBag::set()
    in vendor/HeaderBag.php on line 32
  6. (array) $values is passed through array_values(), and $values is assigned
    in vendor/HeaderBag.php on line 143
  7. HeaderBag::$headers is assigned
    in vendor/HeaderBag.php on line 146
  8. Tainted property HeaderBag::$headers is read
    in vendor/HeaderBag.php on line 67
  9. HeaderBag::all() returns tainted data, and $headers is assigned
    in vendor/HeaderBag.php on line 115
  10. HeaderBag::get() returns tainted data, and $requestUri is assigned
    in vendor/Request.php on line 1782
  11. $requestUri is passed to ParameterBag::set()
    in vendor/Request.php on line 1813
  12. ParameterBag::$parameters is assigned
    in vendor/ParameterBag.php on line 99
  13. Tainted property ParameterBag::$parameters is read
    in vendor/ParameterBag.php on line 88
  14. ParameterBag::get() returns tainted data
    in vendor/Request.php on line 1007
  15. Request::getPort() returns tainted data, and $port is assigned
    in vendor/Request.php on line 1070
  16. Request::getHttpHost() returns tainted data
    in vendor/Request.php on line 1103
  17. Request::getSchemeAndHttpHost() returns tainted data
    in vendor/Request.php on line 1119
  18. Request::getUri() returns tainted data, and $this->getUri() is passed through preg_replace(), and preg_replace('/\\?.*/', '', $this->getUri()) is passed through rtrim()
    in vendor/src/Illuminate/Http/Request.php on line 99
  19. Request::url() returns tainted data
    in vendor/src/Illuminate/Http/Request.php on line 113
  20. Request::fullUrl() returns tainted data, and IncomingIlluminateRequest::$rawUrl is assigned
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 73
  21. Tainted property IncomingIlluminateRequest::$rawUrl is read
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 75
  22. IncomingIlluminateRequest::getRawUrl() returns tainted data, and ServiceHost::$_absoluteRequestUriAsString is assigned
    in vendor/src/POData/OperationContext/ServiceHost.php on line 121
  23. Tainted property ServiceHost::$_absoluteRequestUriAsString is read, and $this->_absoluteRequestUriAsString is passed to Url::__construct()
    in vendor/src/POData/OperationContext/ServiceHost.php on line 124
  24. Url::$_urlAsString is assigned
    in vendor/src/POData/Common/Url.php on line 52
  25. Tainted property Url::$_urlAsString is read
    in vendor/src/POData/Common/Url.php on line 62
  26. Url::getUrlAsString() returns tainted data, and $this->getRequest()->getRequestUrl()->getUrlAsString() is passed to ObjectModelSerializerBase::getNextLinkUri()
    in vendor/src/POData/ObjectModel/ObjectModelSerializer.php on line 161
  27. $absoluteUri is passed through rtrim(), and ODataLink::$url is assigned
    in vendor/src/POData/ObjectModel/ObjectModelSerializerBase.php on line 435
  28. Tainted property ODataLink::$url is read, and $nextPageLinkUri->url is passed to JsonWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonODataV2Writer.php on line 153
  29. $value is passed to JsonWriter::_writeCore()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 138
  30. $text is passed to IndentedTextWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 231
  31. $value is passed to IndentedTextWriter::_write()
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 59
  32. IndentedTextWriter::$result is assigned
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 143
  33. Tainted property IndentedTextWriter::$result is read
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 122
  34. IndentedTextWriter::getResult() returns tainted data
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 276
  35. JsonWriter::getJsonOutput() returns tainted data
    in vendor/src/POData/Writers/Json/JsonODataV1Writer.php on line 432
  36. JsonODataV1Writer::serializeException() returns tainted data, and $responseBody is assigned
    in vendor/src/POData/Common/ErrorHandler.php on line 63
  37. $responseBody is passed to OutgoingResponse::setStream()
    in vendor/src/POData/Common/ErrorHandler.php on line 66
  38. OutgoingResponse::$_stream is assigned
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 205
  39. Tainted property OutgoingResponse::$_stream is read
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 195
  40. OutgoingResponse::getStream() returns tainted data, and $content is assigned
    in src/Controllers/ODataController.php on line 53
  9. Path: $this->parameters['PHP_AUTH_PW'] seems to return tainted data, and $headers is assigned in ServerBag.php on line 44
  1. $this->parameters['PHP_AUTH_PW'] seems to return tainted data, and $headers is assigned
    in vendor/ServerBag.php on line 44
  2. ServerBag::getHeaders() returns tainted data, and $this->server->getHeaders() is passed to HeaderBag::__construct()
    in vendor/Request.php on line 282
  3. $values is assigned
    in vendor/HeaderBag.php on line 31
  4. $values is passed to HeaderBag::set()
    in vendor/HeaderBag.php on line 32
  5. (array) $values is passed through array_values(), and $values is assigned
    in vendor/HeaderBag.php on line 143
  6. HeaderBag::$headers is assigned
    in vendor/HeaderBag.php on line 146
  7. Tainted property HeaderBag::$headers is read
    in vendor/HeaderBag.php on line 67
  8. HeaderBag::all() returns tainted data, and $headers is assigned
    in vendor/HeaderBag.php on line 115
  9. HeaderBag::get() returns tainted data, and $requestUri is assigned
    in vendor/Request.php on line 1782
  10. $requestUri is passed to ParameterBag::set()
    in vendor/Request.php on line 1813
  11. ParameterBag::$parameters is assigned
    in vendor/ParameterBag.php on line 99
  12. Tainted property ParameterBag::$parameters is read
    in vendor/ParameterBag.php on line 88
  13. ParameterBag::get() returns tainted data
    in vendor/Request.php on line 1007
  14. Request::getPort() returns tainted data, and $port is assigned
    in vendor/Request.php on line 1070
  15. Request::getHttpHost() returns tainted data
    in vendor/Request.php on line 1103
  16. Request::getSchemeAndHttpHost() returns tainted data
    in vendor/Request.php on line 1119
  17. Request::getUri() returns tainted data, and $this->getUri() is passed through preg_replace(), and preg_replace('/\\?.*/', '', $this->getUri()) is passed through rtrim()
    in vendor/src/Illuminate/Http/Request.php on line 99
  18. Request::url() returns tainted data
    in vendor/src/Illuminate/Http/Request.php on line 113
  19. Request::fullUrl() returns tainted data, and IncomingIlluminateRequest::$rawUrl is assigned
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 73
  20. Tainted property IncomingIlluminateRequest::$rawUrl is read
    in vendor/src/POData/OperationContext/Web/Illuminate/IncomingIlluminateRequest.php on line 75
  21. IncomingIlluminateRequest::getRawUrl() returns tainted data, and ServiceHost::$_absoluteRequestUriAsString is assigned
    in vendor/src/POData/OperationContext/ServiceHost.php on line 121
  22. Tainted property ServiceHost::$_absoluteRequestUriAsString is read, and $this->_absoluteRequestUriAsString is passed to Url::__construct()
    in vendor/src/POData/OperationContext/ServiceHost.php on line 124
  23. Url::$_urlAsString is assigned
    in vendor/src/POData/Common/Url.php on line 52
  24. Tainted property Url::$_urlAsString is read
    in vendor/src/POData/Common/Url.php on line 62
  25. Url::getUrlAsString() returns tainted data, and $this->getRequest()->getRequestUrl()->getUrlAsString() is passed to ObjectModelSerializerBase::getNextLinkUri()
    in vendor/src/POData/ObjectModel/ObjectModelSerializer.php on line 161
  26. $absoluteUri is passed through rtrim(), and ODataLink::$url is assigned
    in vendor/src/POData/ObjectModel/ObjectModelSerializerBase.php on line 435
  27. Tainted property ODataLink::$url is read, and $nextPageLinkUri->url is passed to JsonWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonODataV2Writer.php on line 153
  28. $value is passed to JsonWriter::_writeCore()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 138
  29. $text is passed to IndentedTextWriter::writeValue()
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 231
  30. $value is passed to IndentedTextWriter::_write()
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 59
  31. IndentedTextWriter::$result is assigned
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 143
  32. Tainted property IndentedTextWriter::$result is read
    in vendor/src/POData/Writers/Json/IndentedTextWriter.php on line 122
  33. IndentedTextWriter::getResult() returns tainted data
    in vendor/src/POData/Writers/Json/JsonWriter.php on line 276
  34. JsonWriter::getJsonOutput() returns tainted data
    in vendor/src/POData/Writers/Json/JsonODataV1Writer.php on line 432
  35. JsonODataV1Writer::serializeException() returns tainted data, and $responseBody is assigned
    in vendor/src/POData/Common/ErrorHandler.php on line 63
  36. $responseBody is passed to OutgoingResponse::setStream()
    in vendor/src/POData/Common/ErrorHandler.php on line 66
  37. OutgoingResponse::$_stream is assigned
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 205
  38. Tainted property OutgoingResponse::$_stream is read
    in vendor/src/POData/OperationContext/Web/OutgoingResponse.php on line 195
  39. OutgoingResponse::getStream() returns tainted data, and $content is assigned
    in src/Controllers/ODataController.php on line 53

Used in output context

  1. Response::__construct() uses Response::setContent() ($content)
    in vendor/Response.php on line 201
  2. Response::setContent() uses property Response::$content for writing
    in vendor/Response.php on line 412
  3. Property Response::$content is used in echo
    in vendor/Response.php on line 371

Preventing Cross-Site-Scripting Attacks

Cross-Site-Scripting allows an attacker to inject malicious code into your website - in particular Javascript code, and have that code executed with the privileges of a visiting user. This can be used to obtain data, or perform actions on behalf of that visiting user.

In order to prevent this, make sure to escape all user-provided data:

// for HTML
$sanitized = htmlentities($tainted, ENT_QUOTES);

// for URLs
$sanitized = urlencode($tainted);

General Strategies to prevent injection

In general, it is advisable to prevent any user-data to reach this point. This can be done by white-listing certain values:

if ( ! in_array($value, array('this-is-allowed', 'and-this-too'), true)) {
    throw new \InvalidArgumentException('This input is not allowed.');
}

For numeric data, we recommend to explicitly cast the data:

$sanitized = (integer) $tainted;
Loading history...
59
        $response->setStatusCode($headers["Status"]);
60
61
        foreach ($headers as $headerName => $headerValue) {
62
            if (!is_null($headerValue)) {
63
                $response->headers->set($headerName, $headerValue);
64
            }
65
        }
66
        return $response;
67
    }
68
69
    /**
70
     * @return mixed
71
     */
72
    protected function getIsDumping()
73
    {
74
        return true === env('APP_DUMP_REQUESTS', false);
75
    }
76
}
77