> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Request-parameters filteren

Elke keer dat er een request wordt gedaan op uw applicatie, verzamelt AppSignal de parameters die met dat request worden meegestuurd.
Dit omvat formulierdata (POST), query-parameters en sleutels in routes (bijv. /user/:id/) in sommige frameworks.

Deze gegevens kunnen door de gebruiker identificeerbare informatie bevatten zoals namen, e-mailadressen, wachtwoorden, tweefactor-authenticatiecodes, API-tokens, enz.
Om de gevoelige gegevens van uw applicatie te beschermen, moet u ervoor zorgen dat deze gegevens worden uitgefilterd voordat ze naar de AppSignal-servers worden verzonden. Op deze manier lekt uw applicatie geen gevoelige gegevens.

<Tip>
  Lees meer over parameterfiltering in onze [Parameter Filtering][parameter
      filtering] documentatie.
</Tip>

<Warning>
  Uw applicatie mag geen gebruikersidentificeerbare informatie verzamelen (zoals
  persoonsnamen, e-mailadressen, wachtwoorden, enzovoort). Gebruik de tools die in
  deze handleiding worden beschreven om deze gegevens te beperken en uit te filteren.
</Warning>

## Parameterfiltering

Basis parameterfiltering in de AppSignal-integraties werkt met een denylist, een lijst met sleutels die moeten worden uitgefilterd en niet moeten worden verzonden.
U kunt een "filter parameters" optie in de AppSignal-configuratie instellen met een lijst van te filteren parametersleutels.

Parameterwaarden die u heeft geconfigureerd om uit te filteren worden vervangen door een `[FILTERED]` waarde. Op deze manier bevat de lijst met parameters in de app-gegevens op AppSignal.com
nog steeds de parametersleutel maar niet de waarde, zodat u nog steeds zichtbaarheid heeft dat een waarde mogelijk gevoelige gegevens bevatte die zijn uitgefilterd voordat ze naar AppSignal werden verzonden.

<Tip>
  Sommige [parametersleutels worden ook verwijderd door onze
  processor](/application/parameter-filtering#processor-parameter-filtering)
  op onze servers.
</Tip>

### Voorbeeld

Bijvoorbeeld een applicatie met deze AppSignal-configuratie:

<CodeGroup>
  ```yaml YAML theme={null}
  filter_parameters: ["password"]
  ```
</CodeGroup>

Resulteert in deze weergave voor de parameters van een webrequest op AppSignal.com:

<CodeGroup>
  ```json JSON theme={null}
  {
    "password": "[FILTERED]"
  }
  ```
</CodeGroup>

Deze gids laat u zien hoe u de denylist voor parameterfiltering van uw applicatie configureert op basis van de taal die uw applicatie gebruikt:

* [Ruby](#ruby)
* [Elixir](#elixir)
* [Node.js](#nodejs)
* [Python](#python)
* [Go](#go)
* [Java](#java)
* [PHP](#php)

## Ruby

De [AppSignal voor Ruby](/ruby) gem heeft twee methoden voor parameterfiltering:

* Als uw app Rails gebruikt, kunt u de [Rails-configuratie rechtstreeks gebruiken](/guides/filter-data/filter-parameters#rails-parameter-filtering).
* Als uw app een ander framework gebruikt, zoals Sinatra of Padrino, kunt u in plaats daarvan [de ingebouwde filtering van AppSignal](#rails-parameter-filtering) gebruiken.

### AppSignal-parameterfiltering {/* id: appsignal-parameter-filtering */}

Gebruik de denylist voor basis parameterfiltering. Deze parameterfiltering wordt toegepast
op alle query-parameters in een HTTP-request en op argumenten voor background jobs.

Deze filtering ondersteunt op sleutel gebaseerde filtering voor hashes, waarvan de waarden worden vervangen door `[FILTERED]`. Er is ondersteuning voor geneste hashes en geneste hashes in arrays. Elke hash die we in uw parameters tegenkomen wordt gefilterd.

Om deze filtering te gebruiken, voegt u het volgende toe aan uw `config/appsignal.yml` bestand in de omgevingsgroep waar u wilt dat het van toepassing is. De waarde van [`filter_parameters`](/ruby/configuration/options#option-filter_parameters) is een array van strings.

<CodeGroup>
  ```ruby Ruby theme={null}
  Appsignal.configure do |config|
    config.filter_parameters << "password"
  end
  ```

  ```yaml YAML theme={null}
  production:
    filter_parameters:
      - password
      - confirm_password
  ```
</CodeGroup>

### Rails parameterfiltering

Gelukkig biedt Rails een mechanisme voor het filteren van request-parameters om gegevens uit logbestanden te wissen.

AppSignal maakt gebruik van dit mechanisme voor request-parameters zodat zowel uw request-logs als de request-gegevens die naar AppSignal worden verzonden, door één configuratie worden gefilterd. Stel dat de applicatie dezelfde sleutels moet filteren voor request-parameters en job-argumenten die voor verschillende Ruby-gems worden gerapporteerd, zoals Sidekiq-job-argumenten. In dat geval is het noodzakelijk om de parameterfiltering in AppSignal te configureren met behulp van de [`filter_parameters` optie](/ruby/configuration/options#option-filter_parameters) om ook de sleutels op te nemen die in de Rails-configuratie zijn ingesteld, omdat het de Rails-parameterfilteringconfiguratie niet zal hergebruiken voor die gems.

#### Denylist: Specifieke sleutels filteren

Er zijn twee manieren om te bepalen welke sleutels worden gefilterd. De eerste is het toevoegen van specifieke sleutels aan de denylist. In het onderstaande voorbeeld wordt de waarde van `:secret` in elke post in de app vervangen door `[FILTERED]`.

<CodeGroup>
  ```ruby Ruby theme={null}
  module Blog
    class Application < Rails::Application
      config.filter_parameters << :secrets
    end
  end
  ```
</CodeGroup>

Het nadeel van deze aanpak is dat het ingewikkelder is bij het omgaan met grotere, complexere applicaties, vooral bij het gebruik van functies zoals `accepts_nested_attributes_for`. Als we vergeten om sleutels expliciet toe te voegen, worden ze niet gefilterd.

#### Allowlist: Specifieke sleutels toestaan

Het gebruik van een lambda in plaats van een lijst met sleutels geeft meer flexibiliteit. In het volgende voorbeeld gebruiken we een lambda om in plaats van een denylist een allowlist op te zetten.

<CodeGroup>
  ```ruby Ruby theme={null}
  ALLOWED_KEYS_MATCHER = /((^|_)ids?|action|controller|code$)/.freeze
  SANITIZED_VALUE = '[FILTERED]'.freeze

  Rails.application.config.filter_parameters << lambda do |key, value|
    unless key.match(ALLOWED_KEYS_MATCHER)
      value.replace(SANITIZED_VALUE) if value.is_a?(String)
    end
  end
  ```
</CodeGroup>

U kunt de lambda elke sleutel laten controleren die u wilt, zodat u een filtermethode kunt bepalen en gebruiken die het beste past bij de behoeften van uw applicatie.

Wat meer informatie over het filteren van parameters is te vinden in de Rails-handleidingen over [ActionController](http://guides.rubyonrails.org/action_controller_overview.html#parameters-filtering).

## Elixir

Als uw app Phoenix gebruikt, kunt u de [Phoenix-parameterfiltering](/guides/filter-data/filter-parameters#phoenix-filter_parameters-configuration) gebruiken. U kunt de ingebouwde filtering van AppSignal gebruiken als uw app een ander Elixir-framework gebruikt.

### AppSignal-parameterfiltering {/* id: elixir-appsignal-parameter-filtering */}

Gebruik de denylist voor basis parameterfiltering. Deze parameterfiltering wordt toegepast
op alle query-parameters in een HTTP-request.

Stel parameterfiltering in met behulp van de [`filter_parameters` configuratieoptie](/elixir/configuration/options#option-filter_parameters). De waarde van filter\_parameters is een lijst van strings.

<CodeGroup>
  ```elixir Elixir theme={null}
  config :appsignal, :config,
    filter_parameters: ["password", "secret"]
  ```
</CodeGroup>

### Phoenix filter\_parameters-configuratie

Gebruik de parameterfiltering van Phoenix om uw configuratie te centraliseren, die wordt gebruikt om gevoelige informatie uit de logs te houden. AppSignal volgt deze filterregels.

<CodeGroup>
  ```elixir Elixir theme={null}
  config :phoenix,
    :filter_parameters, ["password", "secret"]
  ```
</CodeGroup>

Als de `filter_parameters` configuratieoptie niet is ingesteld, zal Phoenix standaard `["password"]` als configuratie gebruiken. Dit betekent dat een Phoenix-app zonder enige configuratie geen wachtwoorden naar AppSignal zal sturen.

## Node.js

Gebruik de `filterParameters` denylist voor basis parameterfiltering. Deze filtering wordt toegepast op alle parameters van een HTTP-request.

U kunt parameterfiltering instellen met behulp van de [`filterParameters` configuratieoptie](/nodejs/3.x/configuration/options#option-filterparameters). De waarde van `filterParameters` is een array van strings.

<CodeGroup>
  ```javascript Node.js theme={null}
  const { Appsignal } = require("@appsignal/nodejs");

  new Appsignal({
    // Other config options
    filterParameters: ["password", "secret"],
  });
  ```
</CodeGroup>

## Python

Gebruik de `filter_parameters` denylist voor basis parameterfiltering. Deze filtering wordt toegepast op alle parameters van een HTTP-request.

U kunt parameterfiltering instellen met behulp van de [`filter_parameters` configuratieoptie](/python/configuration/options#option-filter_parameters). De waarde van `filter_parameters` is een array van strings.

<CodeGroup>
  ```python Python theme={null}
  from appsignal import Appsignal

  appsignal = Appsignal(
      # Other config
      filter_parameters: ["password", "secret"]
  )
  ```
</CodeGroup>

## Go

Voor Go rapporteren we de request-parameters als query-parameters (`?query=text`) en payload-gegevens (POST request payload).

Gebruik de [`filter_request_query_parameters` denylist](/go/configuration/options#option-filter_request_query_parameters) voor het filteren van query-parameters van requests. Stel de [`send_request_query_parameters` optie](/go/configuration/options#option-send_request_query_parameters) in op `false` om helemaal geen query-parameters van requests te verzenden.

Gebruik de [`filter_request_payload` denylist](/go/configuration/options#option-filter_request_payload) voor het filteren van request payload-gegevens. Stel de [`send_request_payload` optie](/go/configuration/options#option-send_request_payload) in op `false` om helemaal geen request payload-gegevens te verzenden.

Zie de [Go-configuratiepagina](/go/configuration/options) voor meer informatie over het configureren van OpenTelemetry voor Go-apps.

<CodeGroup>
  ```go Go theme={null}
  res := resource.NewWithAttributes(
  	attribute.StringSlice("appsignal.config.filter_request_query_parameters", []string{"password", "cvv"}),
  	attribute.StringSlice("appsignal.config.filter_request_payload", []string{"password", "cvv"}),
  )
  ```
</CodeGroup>

## Java

Voor Java rapporteren we de request-parameters als query-parameters (`?query=text`) en payload-gegevens (POST request payload).

Gebruik de [`filter_request_query_parameters` denylist](/java/configuration/options#option-filter_request_query_parameters) voor het filteren van query-parameters van requests. Stel de [`send_request_query_parameters` optie](/java/configuration/options#option-send_request_query_parameters) in op `false` om helemaal geen query-parameters van requests te verzenden.

Gebruik de [`filter_request_payload` denylist](/java/configuration/options#option-filter_request_payload) voor het filteren van request payload-gegevens. Stel de [`send_request_payload` optie](/java/configuration/options#option-send_request_payload) in op `false` om helemaal geen request payload-gegevens te verzenden.

Zie de [Java-configuratiepagina](/java/configuration/options) voor meer informatie over het configureren van OpenTelemetry voor Java-apps.

<CodeGroup>
  ```bash Bash theme={null}
  function encode() {
    echo -n "$@" | sed 's/,/%2C/g'
  }

  export OTEL_RESOURCE_ATTRIBUTES="\
    appsignal.config.filter_request_query_parameters=$(encode "password,cvv"),\
    appsignal.config.filter_request_payload=$(encode "password,cvv"),\
    ..."
  ```
</CodeGroup>

## PHP

Voor PHP rapporteren we de request-parameters als query-parameters (`?query=text`) en payload-gegevens (POST request payload).

Gebruik de [`filter_request_query_parameters` denylist](/php/configuration/options#option-filter_request_query_parameters) voor het filteren van query-parameters van requests. Stel de [`send_request_query_parameters` optie](/php/configuration/options#option-send_request_query_parameters) in op `false` om helemaal geen query-parameters van requests te verzenden.

Gebruik de [`filter_request_payload` denylist](/php/configuration/options#option-filter_request_payload) voor het filteren van request payload-gegevens. Stel de [`send_request_payload` optie](/php/configuration/options#option-send_request_payload) in op `false` om helemaal geen request payload-gegevens te verzenden.

Zie de [PHP-configuratiepagina](/php/configuration/options) voor meer informatie over het configureren van AppSignal voor PHP.

<CodeGroup>
  ```php PHP theme={null}
  return [
      'filter_request_query_parameters' => ['password', 'cvv'],
      'filter_request_payload' => ['password', 'cvv'],
      // ... other options
  ];
  ```
</CodeGroup>

[parameter filtering]: /application/parameter-filtering.html
