सुरक्षा · प्रश्न 8 / 12
एक visitor अपने नाम के रूप में <script>alert(1)</script> दर्ज करता है, और Fluid template उसे {name} से output करता है। क्या होता है?
1 उत्तर सही है। आसान
उत्तर दिखाएँ
उत्तर
- C Text page पर दिखाई देता है, क्योंकि Fluid angle brackets को escape करता है
व्याख्या
Fluid output करते समय {name} जैसे variables को htmlspecialchars() से अपने-आप escape करता है: <script> बन जाता है <script>, और browser इन characters को HTML के रूप में interpret करने के बजाय text के रूप में दिखाता है। यह automatic escaping TYPO3 templates में cross-site scripting (XSS) के विरुद्ध सबसे महत्वपूर्ण सुरक्षा है। यह तब लागू नहीं होती जब आप value को <f:format.raw> या {name -> f:format.raw()} से output करते हैं, जो user input के साथ कभी नहीं करना चाहिए। Fluid न तो content हटाता है और न ही कोई error देता है; value बनी रहती है, बस उसे हानिरहित बना दिया जाता है।