mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-08-06 09:26:52 +01:00
Address security privacy review findings
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9c2eebc4-dcd5-4b85-8113-90772d818900
This commit is contained in:
parent
ec8f891954
commit
d8f372453c
8 changed files with 14 additions and 14 deletions
|
|
@ -2,7 +2,7 @@ codeunit 50212 "Sec Sample SecretSubst Bad"
|
|||
{
|
||||
procedure BuildAuthHeader(Token: Text): Text
|
||||
begin
|
||||
exit(StrSubstNo('Bearer %1', Token));
|
||||
exit(StrSubstNo('Token %1', Token));
|
||||
end;
|
||||
|
||||
procedure BuildSecretUri(ApiKey: Text): Text
|
||||
|
|
@ -12,6 +12,6 @@ codeunit 50212 "Sec Sample SecretSubst Bad"
|
|||
|
||||
procedure BuildBrokenAuthHeader(Token: SecretText): SecretText
|
||||
begin
|
||||
exit(SecretStrSubstNo('Bearer', Token));
|
||||
exit(SecretStrSubstNo('Token', Token));
|
||||
end;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ codeunit 50211 "Sec Sample SecretSubst Good"
|
|||
{
|
||||
procedure BuildAuthHeader(Token: SecretText): SecretText
|
||||
begin
|
||||
exit(SecretStrSubstNo('Bearer %1', Token));
|
||||
exit(SecretStrSubstNo('Token %1', Token));
|
||||
end;
|
||||
|
||||
procedure BuildSecretUri(ApiKey: SecretText): SecretText
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ application-area: [all]
|
|||
|
||||
## Description
|
||||
|
||||
`SecretStrSubstNo` is the secret-preserving counterpart of `StrSubstNo`. It inserts `SecretText` arguments into `%1`, `%2`, and similar placeholders and returns `SecretText` without materializing the result as plain text. It is the right tool for values such as a `Bearer %1` authorization header or a URI with an API key placeholder.
|
||||
`SecretStrSubstNo` is the secret-preserving counterpart of `StrSubstNo`. It inserts `SecretText` arguments into `%1`, `%2`, and similar placeholders and returns `SecretText` without materializing the result as plain text. It is the right tool for values such as a `Token %1` authorization header or a URI with an API key placeholder.
|
||||
|
||||
## Best Practice
|
||||
|
||||
|
|
|
|||
|
|
@ -10,14 +10,14 @@ codeunit 50210 "Sec Sample SecretHttp Bad"
|
|||
HttpClient.Get(RequestUri, Response);
|
||||
end;
|
||||
|
||||
procedure CallApiWithBearer(BearerToken: Text)
|
||||
procedure CallApiWithAccessToken(AccessToken: Text)
|
||||
var
|
||||
HttpClient: HttpClient;
|
||||
Response: HttpResponseMessage;
|
||||
Headers: HttpHeaders;
|
||||
begin
|
||||
Headers := HttpClient.DefaultRequestHeaders();
|
||||
Headers.Add('Authorization', StrSubstNo('Bearer %1', BearerToken));
|
||||
Headers.Add('Authorization', StrSubstNo('Token %1', AccessToken));
|
||||
HttpClient.Get('https://api.example.com/data', Response);
|
||||
end;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ codeunit 50209 "Sec Sample SecretHttp Good"
|
|||
HttpClient.Send(Request, Response);
|
||||
end;
|
||||
|
||||
procedure CallApiWithBearer(BearerToken: SecretText)
|
||||
procedure CallApiWithAccessToken(AccessToken: SecretText)
|
||||
var
|
||||
HttpClient: HttpClient;
|
||||
Request: HttpRequestMessage;
|
||||
|
|
@ -25,7 +25,7 @@ codeunit 50209 "Sec Sample SecretHttp Good"
|
|||
Request.Method := 'GET';
|
||||
Request.SetRequestUri('https://api.example.com/data');
|
||||
Request.GetHeaders(Headers);
|
||||
AuthHeader := SecretStrSubstNo('Bearer %1', BearerToken);
|
||||
AuthHeader := SecretStrSubstNo('Token %1', AccessToken);
|
||||
Headers.Add('Authorization', AuthHeader);
|
||||
if not Headers.ContainsSecret('Authorization') then
|
||||
Error(AuthorizationHeaderMissingErr);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue