raboof commented on code in PR #97:
URL: 
https://github.com/apache/skywalking-client-js/pull/97#discussion_r990296243


##########
README.md:
##########
@@ -180,6 +180,23 @@ Vue.config.errorHandler = (error) => {
 }
 ```
 
+# Security Notice
+SkyWalking client-js agent would be deployed and running out of your 
datacenter. So, end users should notice the security issues.
+There are various kinds of telemetry relative data would be reported to 
backend separately or through your original HTTP requests.
+
+For HTTP requests, in order to implement **distributed tracing from the 
browser**, `sw8` HTTP header is going to be added 
+according to [Cross Process Propagation Headers Protocol 
v3](https://skywalking.apache.org/docs/main/next/en/protocols/skywalking-cross-process-propagation-headers-protocol-v3/).
 
+Meanwhile, client-js would report spans and browser telemetry data through 
[Trace Data Protocol 
v3](https://skywalking.apache.org/docs/main/next/en/protocols/trace-data-protocol-v3/)
 and 
+[Browser 
Protocol](https://skywalking.apache.org/docs/main/next/en/protocols/browser-protocol/).
+
+For both cases, all of these data are reported from un-secured environment, 
users should at least
+1. Don't expose OAP server to the internet directly.

Review Comment:
   ```suggestion
   1. Not expose OAP server to the internet directly.
   ```



##########
README.md:
##########
@@ -180,6 +180,23 @@ Vue.config.errorHandler = (error) => {
 }
 ```
 
+# Security Notice
+SkyWalking client-js agent would be deployed and running out of your 
datacenter. So, end users should notice the security issues.
+There are various kinds of telemetry relative data would be reported to 
backend separately or through your original HTTP requests.
+
+For HTTP requests, in order to implement **distributed tracing from the 
browser**, `sw8` HTTP header is going to be added 
+according to [Cross Process Propagation Headers Protocol 
v3](https://skywalking.apache.org/docs/main/next/en/protocols/skywalking-cross-process-propagation-headers-protocol-v3/).
 
+Meanwhile, client-js would report spans and browser telemetry data through 
[Trace Data Protocol 
v3](https://skywalking.apache.org/docs/main/next/en/protocols/trace-data-protocol-v3/)
 and 
+[Browser 
Protocol](https://skywalking.apache.org/docs/main/next/en/protocols/browser-protocol/).

Review Comment:
   ```suggestion
   In order to implement **distributed tracing from the browser**, an HTTP 
header with the name `sw8` will be added to HTTP requests
   according to [Cross Process Propagation Headers Protocol 
v3](https://skywalking.apache.org/docs/main/next/en/protocols/skywalking-cross-process-propagation-headers-protocol-v3/).
 
   `client-js` will also report spans and browser telemetry data through [Trace 
Data Protocol 
v3](https://skywalking.apache.org/docs/main/next/en/protocols/trace-data-protocol-v3/)
 and 
   [Browser 
Protocol](https://skywalking.apache.org/docs/main/next/en/protocols/browser-protocol/).
   ```



##########
README.md:
##########
@@ -180,6 +180,23 @@ Vue.config.errorHandler = (error) => {
 }
 ```
 
+# Security Notice
+SkyWalking client-js agent would be deployed and running out of your 
datacenter. So, end users should notice the security issues.
+There are various kinds of telemetry relative data would be reported to 
backend separately or through your original HTTP requests.
+
+For HTTP requests, in order to implement **distributed tracing from the 
browser**, `sw8` HTTP header is going to be added 
+according to [Cross Process Propagation Headers Protocol 
v3](https://skywalking.apache.org/docs/main/next/en/protocols/skywalking-cross-process-propagation-headers-protocol-v3/).
 
+Meanwhile, client-js would report spans and browser telemetry data through 
[Trace Data Protocol 
v3](https://skywalking.apache.org/docs/main/next/en/protocols/trace-data-protocol-v3/)
 and 
+[Browser 
Protocol](https://skywalking.apache.org/docs/main/next/en/protocols/browser-protocol/).
+
+For both cases, all of these data are reported from un-secured environment, 
users should at least

Review Comment:
   ```suggestion
   Because all of this data is reported from an unsecured environment, users 
should make sure to:
   ```



##########
README.md:
##########
@@ -180,6 +180,23 @@ Vue.config.errorHandler = (error) => {
 }
 ```
 
+# Security Notice
+SkyWalking client-js agent would be deployed and running out of your 
datacenter. So, end users should notice the security issues.
+There are various kinds of telemetry relative data would be reported to 
backend separately or through your original HTTP requests.
+
+For HTTP requests, in order to implement **distributed tracing from the 
browser**, `sw8` HTTP header is going to be added 
+according to [Cross Process Propagation Headers Protocol 
v3](https://skywalking.apache.org/docs/main/next/en/protocols/skywalking-cross-process-propagation-headers-protocol-v3/).
 
+Meanwhile, client-js would report spans and browser telemetry data through 
[Trace Data Protocol 
v3](https://skywalking.apache.org/docs/main/next/en/protocols/trace-data-protocol-v3/)
 and 
+[Browser 
Protocol](https://skywalking.apache.org/docs/main/next/en/protocols/browser-protocol/).
+
+For both cases, all of these data are reported from un-secured environment, 
users should at least
+1. Don't expose OAP server to the internet directly.
+1. Set up TLS/HTTPs between browser and OAP server.
+1. Set up authentification(such as TOKEN based) for client-js reporting.
+1. Verify all fields in the HTTP headers and telemetry data mentioned above in 
case of malicious data. Attacker could embed executable Javascript in those 
fields, which could cause XSS or Remote Code Execution (RCE) issues.
+
+Please consult your security team before bringing this into your product env. 
Don't expose those OAP server IP/port(s) and URI without security audit.

Review Comment:
   ```suggestion
   Please consult your security team before introducing this feature in your 
production environment. Don't expose the OAP server's IP/port(s) and URI 
without a security audit.
   ```



##########
README.md:
##########
@@ -180,6 +180,23 @@ Vue.config.errorHandler = (error) => {
 }
 ```
 
+# Security Notice
+SkyWalking client-js agent would be deployed and running out of your 
datacenter. So, end users should notice the security issues.

Review Comment:
   ```suggestion
   The SkyWalking client-js agent would be deployed and running outside of your 
datacenter. This means when you introduce this component you should be aware of 
the security impliciations.
   ```



##########
README.md:
##########
@@ -180,6 +180,23 @@ Vue.config.errorHandler = (error) => {
 }
 ```
 
+# Security Notice
+SkyWalking client-js agent would be deployed and running out of your 
datacenter. So, end users should notice the security issues.
+There are various kinds of telemetry relative data would be reported to 
backend separately or through your original HTTP requests.
+
+For HTTP requests, in order to implement **distributed tracing from the 
browser**, `sw8` HTTP header is going to be added 
+according to [Cross Process Propagation Headers Protocol 
v3](https://skywalking.apache.org/docs/main/next/en/protocols/skywalking-cross-process-propagation-headers-protocol-v3/).
 
+Meanwhile, client-js would report spans and browser telemetry data through 
[Trace Data Protocol 
v3](https://skywalking.apache.org/docs/main/next/en/protocols/trace-data-protocol-v3/)
 and 
+[Browser 
Protocol](https://skywalking.apache.org/docs/main/next/en/protocols/browser-protocol/).
+
+For both cases, all of these data are reported from un-secured environment, 
users should at least
+1. Don't expose OAP server to the internet directly.
+1. Set up TLS/HTTPs between browser and OAP server.
+1. Set up authentification(such as TOKEN based) for client-js reporting.
+1. Verify all fields in the HTTP headers and telemetry data mentioned above in 
case of malicious data. Attacker could embed executable Javascript in those 
fields, which could cause XSS or Remote Code Execution (RCE) issues.

Review Comment:
   ```suggestion
   1. Validate all fields in the body of the HTTP headers and telemetry data 
mentioned above to detect and reject malicious data. Without such protections, 
an attacker could embed executable Javascript code in those fields, causing XSS 
or even Remote Code Execution (RCE) issues.
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to