Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class SkinsMoneySignatureValidator
- {
- public function isValid(): bool
- {
- $payload = json_decode(@file_get_contents('php://input'), true);
- if (empty($payload)) {
- return false;
- }
- $data = $this->flattenArray($payload);
- $data[] = 'SERVICE_HASH';
- $signature = hash('sha256', implode('|', $data));
- return hash_equals($signature, $payload['signature']);
- }
- private function flattenArray(array $array): array
- {
- unset($array['signature']);
- $return = [];
- array_walk_recursive($array, function ($a) use (&$return) {
- $return[] = $a;
- });
- return $return;
- }
- }
- $validator = new SkinsMoneySignatureValidator();
- if(!$validator->isValid()) {
- http_response_code(403);
- echo 'INVALID_SIGNATURE';
- die();
- }
Advertisement
Add Comment
Please, Sign In to add comment