larxius commited on
Commit
86c5005
·
verified ·
1 Parent(s): 47b7657

Update frontend/src/pages/Help.jsx

Browse files
Files changed (1) hide show
  1. frontend/src/pages/Help.jsx +69 -34
frontend/src/pages/Help.jsx CHANGED
@@ -1,4 +1,5 @@
1
  import React, { useState } from 'react';
 
2
 
3
  export const Help = () => {
4
  const [activeFaq, setActiveFaq] = useState(null);
@@ -21,8 +22,60 @@ export const Help = () => {
21
  answer: "SPAs often handle routing dynamically on the client side, which can trick traditional scanners into thinking non-existent pages are real (Soft 404s). LarShield uses advanced baseline fingerprinting to minimize these, but if you notice recurring issues, please contact support."
22
  },
23
  {
24
- question: "How can I manage members in my organization?",
25
- answer: "If you are an Organization Admin, go to the 'Organization' settings. From there, you can invite new members via email, manage their roles (e.g., Executive User, Admin), and revoke access if necessary."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  }
27
  ];
28
 
@@ -63,44 +116,26 @@ export const Help = () => {
63
  </button>
64
 
65
  <div
66
- className={`px-md overflow-hidden transition-all duration-300 ease-in-out ${activeFaq === index ? 'max-h-96 pb-md opacity-100' : 'max-h-0 opacity-0'}`}
67
  >
68
- <p className="text-on-surface-variant font-body-md leading-relaxed m-0 border-t border-outline-variant/30 pt-sm">
69
- {faq.answer}
70
- </p>
 
 
 
 
 
 
 
 
 
 
71
  </div>
72
  </div>
73
  ))}
74
  </div>
75
  </div>
76
-
77
- <div className="grid grid-cols-1 md:grid-cols-2 gap-lg mb-xl">
78
- <div className="bg-surface-container-lowest border border-outline-variant rounded-xl p-lg flex flex-col items-start gap-sm hover:shadow-md transition-shadow">
79
- <div className="w-12 h-12 rounded-lg bg-primary/10 flex items-center justify-center text-primary mb-xs">
80
- <span className="material-symbols-outlined text-[28px]">book</span>
81
- </div>
82
- <h3 className="text-lg font-bold text-on-surface m-0">Documentation</h3>
83
- <p className="text-on-surface-variant font-body-sm mb-md flex-1">
84
- Dive deep into our API references, detailed scanner methodology, and integration guides.
85
- </p>
86
- <button className="text-primary font-label-md font-bold hover:underline bg-transparent border-0 cursor-pointer p-0 flex items-center gap-xs">
87
- Read Docs <span className="material-symbols-outlined text-sm">arrow_forward</span>
88
- </button>
89
- </div>
90
-
91
- <div className="bg-surface-container-lowest border border-outline-variant rounded-xl p-lg flex flex-col items-start gap-sm hover:shadow-md transition-shadow">
92
- <div className="w-12 h-12 rounded-lg bg-secondary/10 flex items-center justify-center text-secondary mb-xs">
93
- <span className="material-symbols-outlined text-[28px]">support_agent</span>
94
- </div>
95
- <h3 className="text-lg font-bold text-on-surface m-0">Contact Support</h3>
96
- <p className="text-on-surface-variant font-body-sm mb-md flex-1">
97
- Can't find what you're looking for? Our security experts are here to help you resolve any issues.
98
- </p>
99
- <button className="text-secondary font-label-md font-bold hover:underline bg-transparent border-0 cursor-pointer p-0 flex items-center gap-xs">
100
- Submit a Ticket <span className="material-symbols-outlined text-sm">arrow_forward</span>
101
- </button>
102
- </div>
103
- </div>
104
  </div>
105
  );
106
  };
 
1
  import React, { useState } from 'react';
2
+ import { Link } from 'react-router-dom';
3
 
4
  export const Help = () => {
5
  const [activeFaq, setActiveFaq] = useState(null);
 
22
  answer: "SPAs often handle routing dynamically on the client side, which can trick traditional scanners into thinking non-existent pages are real (Soft 404s). LarShield uses advanced baseline fingerprinting to minimize these, but if you notice recurring issues, please contact support."
23
  },
24
  {
25
+ question: "How is the Security Risk Score calculated?",
26
+ answer: `This assessment utilizes an enterprise CVSS-weighted, category-capped vulnerability risk scoring algorithm. The score calculation is fully deterministic, auditable, and reproducible.
27
+
28
+ 1. Severity Base Weights & Formula
29
+ Deduction per Finding = Severity Base Weight × [0.2 + 0.8 × (CVSS / 10)] × Confidence Multiplier
30
+
31
+ • Critical: 25.0 pts (CVSS Scaling Range: 0.20 - 1.00x) - Immediate threat to core business logic or full system compromise.
32
+ • High: 12.0 pts (CVSS Scaling Range: 0.20 - 1.00x) - Direct threat to application confidentiality or integrity.
33
+ • Medium: 4.0 pts (CVSS Scaling Range: 0.20 - 1.00x) - Indirect threat or security control misconfiguration.
34
+ • Low: 1.5 pts (CVSS Scaling Range: 0.20 - 1.00x) - Minor hardening flaw or minimal impact finding.
35
+ • Informational: 0.0 pts (CVSS Scaling Range: 0.00x) - Best practice advisory or design note.
36
+
37
+ 2. Category Deduction Caps
38
+ To prevent non-exploitable misconfigurations from disproportionately penalizing the overall score, category deduction caps are enforced:
39
+ • Security Headers: 15.0 pts max (Capped)
40
+ • SSL/TLS Configuration: 15.0 pts max (Capped)
41
+ • HTTP Method Tampering: 12.0 pts max (Capped & Root-Cause Deduped)
42
+ • Cookie Security: 10.0 pts max (Capped)
43
+ • DNS Security: 10.0 pts max (Capped)
44
+ • Compliance Framework Signals: 0.0 pts (Unlinked — Reported Separately)
45
+
46
+ 3. Graduated Confidence Multipliers & Posture Floor
47
+ • Confirmed / High: 1.00x Multiplier. Floor: 75 / 100 (Grade C) if 0 Critical & 0 Highs (≤ 15 Mediums).
48
+ • Likely: 0.60x Multiplier. Floor: 60 / 100 (Grade D) if 0 Critical & 0 Highs (> 15 Mediums).
49
+ • Medium: 0.50x Multiplier. Floor: 55 / 100 (Grade D) if 0 Criticals (≤ 15 Mediums).
50
+ • Low / Unconfirmed: 0.20x Multiplier. No Floor (Grade F) if 1+ Critical Vulnerability.
51
+
52
+ 4. Worked Calculation Examples
53
+ Example 1: Application with 15 Missing Security Headers (Capped Deduction)
54
+ • Raw calculation: 15 × [4.0 × (0.2 + 0.8 × 0.53) × 1.0] = 37.4 pts.
55
+ • Category Cap applied: Security Headers deduction is capped at 15.0 pts max.
56
+ • Posture Floor rule: No Critical/High findings → Score = 100 - 15 = 85 / 100 (Grade B — Good).
57
+
58
+ Example 2: Audit with 1 High, 5 Mediums, and 1 Low Finding
59
+ • High (No Brute-Force, CVSS 7.5): 12.0 × (0.2 + 0.8 × 0.75) × 1.0 = 9.6 pts.
60
+ • Mediums (CORS, Cookie, DNS): Sum of capped category deductions = 15.8 pts.
61
+ • Low (Server Header): 1.5 × (0.2 + 0.8 × 0.31) × 1.0 = 0.7 pts.
62
+ • Total Deduction = 26.1 pts → Score = 100 - 26.1 = 74 / 100 (Grade C — Fair).
63
+
64
+ Example 3: Application with Critical Blind SQL Injection (CVSS 9.8)
65
+ • Critical (Blind SQLi, CVSS 9.8): 25.0 × (0.2 + 0.8 × 0.98) × 1.0 = 24.6 pts.
66
+ • High (Auth Bypass, CVSS 8.1): 12.0 × (0.2 + 0.8 × 0.81) × 1.0 = 10.2 pts.
67
+ • Total Deduction = 34.8 pts → Posture Floor Disabled (Critical Present).
68
+ • Final Score = 100 - 34.8 = 65 / 100 (Grade D — Poor).`
69
+ },
70
+ {
71
+ question: "Privacy Policy & Data Handling",
72
+ answer: `We are fully committed to protecting your data and privacy. We align our data collection and handling procedures with global standards, including GDPR, CCPA, and India's DPDP Act.
73
+
74
+ • Data Encryption: All vulnerability scan data is encrypted at rest (AES-256) and in transit (TLS 1.3).
75
+ • Audit Logs: To prevent abuse, we retain metadata regarding IP origins, target configurations, and timestamped actions.
76
+ • Third-Party Sharing: We do not sell or share your data with third parties for marketing purposes. Data is only shared with essential infrastructure providers or law enforcement if legally compelled.`,
77
+ linkText: "Read our full Privacy Policy",
78
+ linkUrl: "/legal/privacy"
79
  }
80
  ];
81
 
 
116
  </button>
117
 
118
  <div
119
+ className={`px-md overflow-hidden transition-all duration-300 ease-in-out ${activeFaq === index ? 'max-h-[2000px] pb-md opacity-100' : 'max-h-0 opacity-0'}`}
120
  >
121
+ <div className="border-t border-outline-variant/30 pt-sm">
122
+ <p className="text-on-surface-variant font-body-md leading-relaxed m-0 whitespace-pre-line">
123
+ {faq.answer}
124
+ </p>
125
+ {faq.linkUrl && (
126
+ <Link
127
+ to={faq.linkUrl}
128
+ className="inline-flex items-center gap-xs mt-md text-primary font-bold hover:underline font-label-md"
129
+ >
130
+ {faq.linkText} <span className="material-symbols-outlined text-sm">arrow_forward</span>
131
+ </Link>
132
+ )}
133
+ </div>
134
  </div>
135
  </div>
136
  ))}
137
  </div>
138
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  </div>
140
  );
141
  };