1、HttpOnly
严格的说,httponly并非为了对抗XSS,它解决的是XSS后的Cookie劫持攻击。Cookie设置了httponly之后,JavaScript读不到该cookie的值。
一个cookie的使用过程如下:
step1:浏览器向服务器发起请求,这时候没有cookie
step2:服务器返回时发送set-cookie头,向客户端浏览器写入cookie
step3:在该cookie到期前,浏览器访问该域下的所有页面,都将发送该cookie
HttpOnly是在set-cookie时标记的:
Set-Cookie: <name>=<value>[; <Max-Age>=<age>]
[; expires=<date>][; domain=<domain_name>]
[; path=<some_path>][; secure][; HttpOnly]
HttpOnly可以有选择性地加在任何一个cookie值上:在某些时候,应用可能需要JavaScript访问某几项cookie,这种cookie可以不设置HttpOnly标记,而仅把HttpOnly标记给用于认证的关键cookie
举个例子:
<?php
header("Set-Cookie: cookie1=test1;");
header("Set-Cookie: cookie2=test2;httponly",false);
?> <script>
alert(document.cookie);
</script>
在这段代码中,cookie1没有HttpOnly,cookie2被标记为HttpOnly,两个cookie均被写入浏览aaarticlea/png;base64,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" alt="" width="669" height="79">
但是只有cookie1被JavaScript读取到:
aaarticlea/png;base64,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" alt="" width="506">
这就是HttpOnly的作用。
2、输入检查
输入检查的逻辑,必须放在服务器端代码中实现。如果只是在客户端使用JavaScript进行输入检查,是很容易被攻击者绕过的。目前Web开发的普遍做法,是同时在客户端JavaScript中和服务器端代码中实现相同的输入检查。客户端JavaScript的输入检查,可以阻挡大部分误操作的用户,从而节约服务器资源。
3、输出检查
一般来说,除了富文本的输出外,在变量输出到HTML页面时,可以使用编码或转义的方式来防御XSS攻击。
针对HTML代码的编码方式是HtmlEncode
HtmlEncode并非专有名词,它只是一种函数实现。它的作用是将字符转化成HTMLEntities。
为了对抗XSS,在HtmlEncode中要求至少转换一下字符:
& --> &
< --> <
> --> >
" --> "
' --> ' $apos;不推荐
/ --> / 包含斜杠是因为它可能会闭合一些HTML entity
在PHP中,有htmlentities()和htmlspecialchars()两个函数可以满足安全要求。
htmlspecialchars — 将特殊字符转换为 HTML 实体
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABVEAAAF9CAYAAAANwSiNAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAJRvSURBVHhe7b37dxX1vf//+Z/2D2YX0ybnKxdPaloQtOSg4DEKgpyUYyJUSGkol6aCxmiWRMFuoUCESsBAJJRLI4gKxg9R4HOCfKBkaVY/0uVCV1d+2L+8vvOeeb9nz8x+z+xL7vB4rPVYysxk79lzec/Mc96X//Xjjz8KIiIi3p+mnu1ERJx0beURIiIi4nSWEBURERERERERERExQUJURERERERERERExAQJURERERERERERERETJERFRERERERERERETJAQFRERERERERERETFBQlRERERERERERETEBAlRERERERERERERERMkREVERERERERERERMkBAVERERERERERERMUFCVERERERERERERMQECVEREREREREREREREyRERUREREREREREREyQEBURERERERERERExQUJURERERERERERExAQJURERERERERERERETJERFRERERERERERETJAQFRERERERERERETFBQlRERERERERERETEBAlRERERERERERERERMkREVERERERERERERMkBAVERERERERERERMUFCVERERERERERERMQECVEREREREREREREREyRERUREREREREREREyQEBURERERERERERExQUJURERERERERERExAQJURERERERERERERETJERFRERERERERERETJAQFRERERERERERETFBQlRERERERERERETEBAlRERERERERERERERMkREVERERERERERERMkBAVERERERERERERMUFCVERERERERERERMQECVEREREREREREREREyRERUREREREREREREyQEBURERERERERERExQUJURERERERERERExAQJURERERERERERERETJERFRERERERERERETJAQFRERERERERERETFBQlRERERERERERETEBAlRERERERERERERERMkREVERERERERERERMkBAVERER8b7xC+lcnJJUynNDT/4yX3Qu9uenNvTkzS/W7y91ylO/2iiHL39nnV+ef5PXHvu5/PznytWyZ9C2TM4v/vScXtZx9R4ZtCwTcnCPrC6w/Dc9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+t/RmpYTEKIWO7DUY29ecr7/bXnC9O364C9kTacKU7+XS51P5EJiNxi2jNofDVGj810jn2V0PvOV/luW5RERERHxXpAQFREREfG+0Raifi+ntwVqaKaq5PcnowFjIDRNPSZv9h+SX+vlc6PVa8sIUb859Gu9vLKIELWiIhdiVj0h2zLd0t3dLWevXJfuF239uj6YG4gqNcf53TFhZ6EQ9bv/I8f++KvAZ1XIo796NBDOPiyr3dA28neIiIiIOOMlREVERES81/3uO/nO+e93fz8hf/i5CQBViPq9fH1kQ6C/05RULN8r16J//+P3cmRdbpmg645EAtfEEPV7+faGN4q97+Bf5ZVAP6XWPlGvfSTdpz5zl/+7G1AmDCz143dy+Vi7rPnFg4HPDLhkp3zu9g+b7/f9L4cHlnKnO+t85Zx0t6+RX0S6EnjwqT85y1yTvcuD6+/44C9k+R8zcuqzG7ovWkRERESc6RKiIiIiIt7rnn8lMGK+8eey4eW1oQBVhZ5v2pq5O17fuzywnHG57L0eWTYxRP1GDv06+PcWn3hbBoOfZzUpRDV+J5cP/1HqH44EnMoHfyWvnP7GX9b625z1uHj2FfmPKsvfO85ZtVcumYD0+0vy9lO20HaObDtt356IiIiIOLMkREVERES85+2VjaafUGPV7+Xkd8Hwr0Ke6FT9n9r+3vEb5zMC/aYqrbVWCzTnt4exxoSm9iGLCVG1338rnx/eJL8K1iKtWidHgoNKXXpTHjPztFXbTjvzvpHejcGuDhwf/JVsOnzZrdkb/p6v5cNQU3/nMzb0uH3LhpZDRERExBkpISoiIiLiPW+gBmhFlTz81EuSMYMg6VqUczb0yK28vwv7/aW9strU7JyzSvYWGpzJ1ieqJbB8cPbP5edqnc58HR/ihiwhRDV+d1mOta+WhytsQW0gZH5wtrMuf5STJmS9dUTWVaWkomqJZcT/fL+7fFj+uPwX8mDFctl7zb4MIiIiIs48CVERERER73e//06+K7rvTtWv6VT39fmd/N30qXrj2yKDV8/vv/02vxZpAb9z/qaU71B+/913Jf8NIiIiIk5fCVEREREREREREREREyRERUREREREREREREyQEBURERERERERERExQUJURERERERERERExAQJURERERERERERERET/F/nP7sliIiIiIiIiIiIiGiXEBURERERERERERExQUJURERERERERERExAQJURERERERERERERETJERFRERERERERERETJAQFRERERERERERETFBQlRERERERERERETEBAlRERERERERERERERMkREVERERERERERERMkBAVERERERERERERMUFCVERERERERERERMQECVEREREREREREREREyRERUREREREREREREyQEBURERERERERERExwYkLUXuOyWutf5D/enqJzJn9M3ng6T9Jn225Qh5olYdTKUm5rpRXzliWcT0rv5tvlkvJnPXHLcvgpPn+q/JLs9+e329fRvve7xf5+23lTvsyxkN/XC5z5v6769I/9luW+VLeeP5nkvrJ/+cu81jTITmWt8xE+j/Se/xTOXbma8s8RERERERERESciU5giNohj5sQTfnAammLDUDj1IGY+YxfvCR/7Ngrr0XM9DjLhr6vUpZuzF9OufPQl5bvwTH78Vdy7PinctT47hapNftj+a7c9OOX5OTHX8vJE7lld69/1N/Hz7yam66MhpHBwPWXvz8bmucaDG9TFfLUa1/kL1PIc/87tA6u7x0OHEe75HdrfyP/9WvH5/5Tat1Qd65UPmC+1/Hft8i7H1s+GxERERERERERZ5xlhqifyZsbdYgUa4M8+tNAqJSqkJpltuWCviV7A9/Tf3BHIBCLV9Ve/PNvH7HOi2oN3nDshsLLJBfJ794P1xpOMrq/kkPUL+SVpytCfx/r/FflvdDfegY/f6w+vP649Fu+AxERERERERERZ5ZlhqjFh2Cl2ShvmO/4+JT8bmFxgdjKjr/Ir0OBbbyEqBPkNAhRezvWSGXgbxOdhBD1gZ8uk81/yf8OREREREREREScWU7TEPVreXd9oGbpA7+Upaqm6qolUu1Oe1jqVpvaq03y3/8ZCL7+bYksd6bVzXH+f9Z8Weov57nhrc8ivwXHxQltzp+r+fzswlz3DpULG5xpf5Q3e53v79kpdYHm9NWPrwnt9/9a/ZTM1vOUDyx9Sz6w/A5biPqTaq8PVuNjT+c+d32raeJ/WPbpde49l/+5iIiIiIiIiIg4cx2XENULswKBVSk+EWyG74WofW+t02GpskIe/f0p6f/smrzdONdftvr5/dLrLBtu8u/1gfl+6zJ5ILKc/XfgeNm914SJ2m1rZI7ZL4s3B+YdkgNnLkgmsOzm5/5d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4Gvy2E8sy/3bRtn1cb9sWhicXiH1r6v+UNXfEqIiIiIiIiIiIt7vjmtz/nfXB0bSj/rvrfJny98UsqgQ9bP3ZLU1SFM+JC/86WvL3+CEOEF9ou5veTSyzM+c/erMO+Ps+9AAYyn5yS9fkrbD/xP6e2X/hwfDTf2dz1i50wtLQwOV/XS9dLpN+ZWEqIiIiIiIiIiI97vjGqKef2udPBANkx74mdQs+YO8+WF5QWZxIaqtpuIsqZ67RBo6zuf1l4oT6ET1iRo4tn5S/e/y2Nq/SK+e19uxRipTFVL56AuyxdrfadD/kYOvt8h/PDxLHliyUw4H5qmQVQ1UFv7ucIj6zKu2dTcW168rIiIiIiIiIiLOLMc3REX8+Cs55oeK/7tAoBn0azl5IhdIHjtTSuj+P3KypOWVX8uZc5a/OfeVnPRroSrDff32ngvOizqW34CIiIiIiIiIiNNVQlRERERERERERETEBAlRERERERERERERERMkREVERERERERERERMkBAVERERERERERERMUFCVERERERERERERMQECVEREREREREREREREyRERUREREREREREREyQEBURERERERERERExQUJURERERERERERExAQJURERERERERERERETJERFRERERERERERETPB/HT72pfyh/SwiIiIiIiIiIiIiWvxfn3/+uQAAAAAAAAAAAACAHUJUAAAAAAAAAAAAgAQIUQEAAAAAAAAAAAASIEQFAAAAAAAAAAAASIAQFQAAAAAAAAAAACABQlQAAAAAAAAAAACABAhRAQAAAAAAAAAAABIgRAUAAAAAAAAAAABIgBAVAAAAAAAAAAAAIAFCVAAAAAAAAAAAAIAECFEBAAAAAAAAAAAAEiBEBQAAAAAAAAAAAEiAEBUAAAAAAAAAAAAggfs4RL0tB55JSSpVLTsu6ElW7srxdWl3udZzWT0NAAAAAAAAAAAA7hfu2xA1O9AhC1IpST1zQG7raVZuH5Bn1HILOmVQTyqGG++tkdra2rJd894N/UkAAAAAAAAAAAAwlUy/EHVov2zceEAu3tH/nhDuSE+jql2akuplL8nWrVstviVnv83KudZqd7nK/2iyLGN8Py9gHcos8f5ujj0kjXVOpft3SzJD+pNyZG/1SVvTG3L2rp4AAAAAAAAAAAAAE840C1F1uFndIqcmMCi809cs1ap2aaJLJHMqI0us86I666s/22BC1JbojEKcanH/zhaiOh/qrs+CjgGZCR0L3Ll4QDbW18qcShUmL5amzEVnDwMAAAAAAAAAAMwsxi9EvXNRDmys92pSVs6RxU2Z0muTDna6TeytAaJkZeTTjDQtqpa0Ci6d76jf1ie3Sk0T75ySlrkq+FwgHQPOH2dvSd+WOqnbcS4S8N2WgytVbdW0NPaoOVm51bNB5td3FPW7JiRENf2zptfJ8WleG/WO8zvmOtuuZk2nnP7qK+ltWeD8LvqVBQAAAAAAAACAmcf4hKg6mEzXrJHO01/JV70tbhha3XquhBqTd+VUi2o63yg9loDw7tktMtf5TPc7jhyRzPpFbpg6d8eF4r8je1Uyy7xm/H5tTn9aWpZlrvqfdfvgSvfz08v2iBdnqhB1nbcOywoHqRMTojoMdEitM/+ZA4k9uU4td4/LunQq3N+srkUb+7sAAAAAAAAAAACmKeMQoprR65+RXK43JJklKUktyegAsgh08JZed9z5xCj681IN0u2HlwPSUetMq94hiYPr+9yRUy1z3YAyvSwjV3Vams06/+PXTq2TP11TuWpGlqkQMLVEdpsFXbJydbcKR9NS96ev9DQ7E9Enqof+3SUOdDWZZPua3d/QGEjD7x5fJ2lnu7WcCm5PAAAAAAAAAACA6c/YQ9RsnzSnUpJq7MmFnyYQbTlVdC3Ruz2NecFbjlPSor4jFMpeld2LnWnFhqjZEelTIercFjnlB7GqD9ZqqdvWI19e7JPewVF36u3jG6QmHa6Z6pGVH775SA4fHpQf9JQ4TIharkk1Ngc6ap1lFkjnNE1Ro7VwsyN9Xki9ZLcfXttRXTaoflTnSKXaDulqWbrxqPM3el9HQnlzzLjfM3pderfVu/2vqr9bFOhOYvT6aelsWiTVKhhX3UC0/U1Goutxdbcsdj5r8e6r3me1rZJF1V6t5co59dL2t5G8Y+FW3zapr62XNy7YjlkAAAAAAAAAALhXGHuIqptpp3KJmRdW5tXiTObCDtWUf5nsuaEnhLggO6qd7wgEpl6fm6U25x+R4UB6ZroISC3oENU9apA7g4O5pug+pkZs/kBSUcpuzv/Rq26N1DXvWTeES9b57aqrgZUHv9VTphe5QPyOjHzaKfUq2Jy7TnoSO7C9I6e21Hj93aZrZEXzVtnavEJq0impXrnSPcbSW87qZT28Y6Zamnd731E5f5U0679R31+945zbj60KxKuXNsnWpjovnE2lZV2kU1mzzrWNG3KftXWrNK/Q66QGGgsmuN8elJXu9Pz1AgAAAAAAAACAe4uxh6h3e6RRhUmNPXJn5FPprFfN0efKup5bxYebJpxMbxF7HJWVUy2qVmCtdAyMyvVuFYylJF2zJVCrtESyA9KxQIVgc2XL2WJrEhYfok4oN/bIMrXNS05oJwndb2u6stJtwl+zptAgY1kZ6HzcDSuj/c3mulaIhsbfysGV3nQVum7ovi5ePWLnb861SrWarqysl85Pc7VIbx94xp0eDT692r3qsxbJlt7cZ7nr1qEGxVKhbKDOc/aCtNWkJV39nOwp4WUBAAAAAAAAAADMPMahT1TdR2e6UirdYHONZIoZvj6Erbl+mLunWtxgLJ3WTazrO4saJd9OIBhr7pM7d69J/4kTcqKg+6RZ/dbUcnk9NP1zuX3jPVkT7d903Fwj4YqphbfXlJEdkU8zDV4N39Qj0twTDCQ1t/8qb27dKq1dn8uPzj+zAx3uQGThrhYMWelrVp+lAnQ9yeWsbHHD1QXSei7yR6Z2dHWjdEdrv+qBu8Ihqglkq2XL3/LW1g+FU8v2SHz9YAAAAAAAAAAAuFcZY4iq+rDMSIM7KFNKHmnukev5iZn89c2tsrW1Sz5XiZkN0zS6uc+vMRhG9T/pjfivvqd2a7/Y8tPB953v2bpV9n0W90Uefmjn6FbmNKFb2bbIqTF/RpKRpuSl9gc7Wdw5JzsWqZA7LdXV3gBZz+RGG9Nk5cIO1d3DAulw+1AwA5PlN7H30CF9qlFC3eWa7V3b4SwR4ewWrwm+5Xi6sWeZu17LQv1GmEA28h0G813TMbQGAAAAAAAAAIAJZwwh6h05t2OR1wS7utrra/KZA3n9iGYv7HBrJS7oGIgJSB1MSGVtnp77nlRlpfc91hqLut/UuCDM4I/E7+l+ZfYH+cc338g3Bf1MOlR4mfqNHAlN/2d+bUvFYKcb1qbXHc8NujUuTJNuBYLcPStb3O2qu3K40yONKpisdtbREn5WOxvenZx19odaLu0sZztATMC+eLdc1ZMU2b5mbx8WHZR6nN2iAttqCbbM94+/yHf4mJqosSE/AAAAAAAAAADcy5QZot6Vs1tUbcKUzF3XI7eyapR7L5xqCSdmXtgXDdKiJISoQ3uWeQGqG5xm5WrG+3d6WSY00rtp7l/dei4+6MpelcwyrzsA0y1A+CtH5XrvNtm4Jzoqv6GU8DIr51q9gY9az4139Db9QtTBTq97hCW7zbZz9tVub3Ctuc5G9jLvIdmjtn+6UXpMCK5HxVd96loPEV2rNK4P0/yg1DT/T0v+eE+6Bm9qpQS7VzWBbNwAUWaQsCXh6sAAAAAAAAAAAHCfUF6IqmtYppbs9oPM7NXdXhAaqCXqBaBpd5T2RGIHSjK1S2vltYsmiLwjp9zR/4NBqgkVo83eA2RvSc+63N/16YAv9JV+LdW5suOCLfgsJbzM9dm5eqvXzUBJvnVW4sfe1+sROxDXZBPT5N4PrdOyLDMog24AXi3NfYHjQfdRGjdI1tXdi9354bD0rvQ0qu+L1Ch1MesSDkpdzCBokS4ATCAbHrjKMCid7gBkC6RzUE8CAAAAAAAAAID7irJCVBM6NYYTs1At0cFBb1R1d+AmvUQ8MQMlmRqq0dAyGIgu2iEHOrzvnbvjgq4FacGMxq9DXlO7MJrd3TnV4g2KNHeL5A/aX0qIqn9TuSb2vxmzvaYM81ubpS+yA4Kj66swtWaLqZWqMf2X2mqiZq/Kbnd7R8NSE65bglLT/N/WV+qFHd6o/aFm+SaQjQ5cpQgc0876FT6OAQAAAAAAAADgXqSsEPVUiwqdUtKcn5j5zeWV6Zotlr5LbcQMlGRqDtpqmAaCVFdr6BnmzqmMHNRVZ+NCVFXTta9ZNcNPydwtZyPB3iQ0ozfN22NqZroUHIhrsjHbJVLLVDF6XXqaH/H2UapS6js/lZHgSpvfEmzi75Ad+VQ6/GMpUsPV1Fwuc1CpxbuDPZ+aQDbY7YAiK7d61nmBeuU6OR78WaODcvjVrbI1c45gFQAAAAAAAADgPqCsENUEkPm1TEflek+zPKKCJ8fK+k75NJSYxZGVUy0qMIvWLDQjt6varbtlMDh6U/YH+eJAgxdyuVZK3bZeufZDcbFifIjqoAdFmtuwXwb/pae5TEKIqpu31+ZXi8yha1ROpz46/Rq86RpZsS0jR04ckcy2VTK/0pu2pq1N1tTofVmzQv70mdmwuX2cqqyTJtWVQdNSqU6nZdGOHd7gVNGwtIigNH/bxPSVagLZJcvcGrOVdU1udwpNS6u976islz3BzncdLuzwQnZ7dwIAAAAAAAAAAHCvUV6fqH7foWmpWbFNMkdOyJHMNlk1v9KbtqZN2tbUeCGUCtX+9JmEskgL3x5c6f5tS3SI9uBo+pVzpL5pq2xtXiWLqk0gt0Yy3Rk/oFNh6tJ3v9J/HE9iiOpwZ3jYMuL+xIeoZr3s/XN6eMtMtwAvKyOfHpCN9TVSrYJPZ1/VLl4lzTsDwXZ2RD7NNMmi+VvCA42NDsqBpkXe3zn7b079Rjnw6Yhks33SrPZpJCy195OqSBpUyvSVukxCfxYIre9czEiTeww7x1X1IlnV1i2DlpcAt49v9MJh6/cAAAAAAAAAAMC9RnkhqoNqbn1gY73UuGFmpcypXSyrmndK77UfdOClQrWMNC2aL1sSh+bX3D4gz6RiRtcfvS6nMxulvkbXDkxXS019k+zsHsw1Dc+OyGB3m6yaX1NUuFgoRLUz0SHqbTnwjPp8W/+cBr1MdauM+6D/9yEmkA3371uYwc4FznG4To6X9mcAAAAAAAAAADADKTtEHX++lfcb0pJKt0i0MupEUFaIOvo32eL2n1lmiHr3mvSfOCEnlB9/Jd98843vjYEPpdPU3l3QKbEDwevBthYwVPw4kDSoVDyjg7vdpv9Ldl/ND/wBAAAAAAAAAOCeYxqFqCLZc61SnUpLY3CEoQmiqBDV9L3pWDlHN1NX/37mgNzWi5TGWdliPiNOSx+cObJyYYcaTOsZOVDeCkAIM6hUs0THSLNzW061rZCadFpqtvSFB8gCAAAAAAAAAIB7lmkVovrN5Rd0yMAEB1RFhag33pM1tbVSG7R+m/TdKnflvpWzb211By6yubPrY7me3xFrDj3gVbWz0rQiHwe+PSgrVXC9eLcEx+uP51s5+vJGyZy+bukvFwAAAAAAAAAA7lWmWYgqkr2wQ+bPf0mORscMAvnXZ2/K0jkNcpBaqOODqWlcWse4AAAAAAAAAABwnzHtQlQAAAAAAAAAAACA6QQhKgAAAAAAAAAAAEAChKgAAAAAAAAAAAAACRCiAgAAAAAAAAAAACRAiAoAAAAAAAAAAACQACEqAAAAAAAAAAAAQAKEqAAAAAAAAAAAAAAJEKICAAAAAAAAAAAAJECICgAAAAAAAAAAAJAAISoAAAAAAAAAAABAAoSoAAAAAAAAAAAAAAm4ISoiIiIiIiIiIiIi2nVD1JGREURERERERERERES0SIiKiIiIiIiIiIiImCAhKiIiIiIiIiIiImKChKiIiIiIiIiIiIiICRKiIiIiIiIiIiIiIiZIiIqIiIiIiIiIiIiYICEqIiIiIiIiIiIiYoKEqIiIiIiIiIiIiIgJEqIiIiIiIiIiIiIiJkiIioiIiIiIiIiIiJggISoiIiIiIiIiIiJigoSoiIiIiIiIiIiIiAkSoiIiIiIiIiIiIiImSIhalp/I28/VSE3Nc/L2J7b5iNPI4YvS29UlXUc+kiHb/CL95O3nnGO+RjYfDU4/KpudaTXPvS2fBJYt6M2bctM2HRERERERERFxGjqtQtThoS/liy++KOCXMnRzSL60zrN5NRTWmCCoWMOBkfG8tD+eklTqcWk/b5vv+Mnb8pzl84q21FAK7w+PbrYfL472Y3VYTrbWOseqc7w+3i7n8+YX7/n2x93PWXsoOP2QrC3xs4cvd8um+bNk/qajcsUyP+k35ox/gVHqOZ5o5Dy8edVWxoxFpzwbDq8/IiIiIiIiIk4/pzxEHTr8B1m9uUsuDudCmmQfl/ZD7fK4dZ7NtXIo8H3FBiwPzfL+PhwYGYsIUc/rdZz1kPXz431IZqm/s4VSwxela/Nq+cPhofB0vH88tDZwbIe1HavDJ1ul1l+mQura+2U4skyxjl+I2iVrZ+v1aT2RH6Qm/Mac8eeet5410vhml3SpGrjaNxtrnOlPybbANOW2p5zPq2mUN0PT35TGGmd65HcdWhtch/EwoQxBRERERERExGnj1IaowyeltTblBxWXD78iGzZsiPVZtawKHY4dls11VW4IUfusfdkNG571wqOqTXIs+r1FaMKSMYeoaw/Z58eaFErp761tlZPUXrs/1QFj7ri8LLueVsfi07LrcmA55RXnWHLDysel7cwZaa+rcP5/tvO3V8LL+Q7JR0eCQWJYL4SMCVHzQsigR+SjoeDfjMhwf7vUVah1swS7+jc+3n4+9DdG79wsFKLmz/emh1+qKN3Pyzvf9LkWmX50s+3FR4nOq5IKtc1cCVERERERERERZ4LjEKLqEMWElUN75Xk3VGmVk3nLhh3a1yAVqSpZe6iYmpVDsvd5FTp4YdFwV6MbQthDTkcTYlrDyMJOzxDVbLMKadg3/WujXjnRKS8+6dXqnfXQQlndbql1OCO8KVdV0+urNy3zJtloiGrOt6d3yeXgcsP9OjQNhJTnO7zgsqJOWk/YglRzXCdrDVETtZ8nV5zfMlvNn/WsvHMpN92c22MLUSemJupYHb7YJevnq/2ifkOFzF/v1cK3LYuIiIiIiIiI08exh6gmLHx+rzdozclWqXH+XbH2UIFmwzqwiYStw5d7pfukLSDsl7aFzvIV6+Ww+vfh9W5trrqOTyzLOh7bJFVqvUoOMT2na4g6MnJSWlW4s7RTLlnnTw+9gKxC5q3cLn85e1b2r1X9clbJb48OW5ef1up9WbXpmH3+ZBoJUYf2Pu/+++ldl3PL3DwjbW6AmpLZzvEXDK5vnmnTQeo8eSFzITK407AMfRntszNnb+vC0Hd76uN1Yav0Wv7GM67fz2Hpf7dTui8Hj4lhOfpbVcu8QtYfDi6bs7gQtUKq5llqgRbtPKlS22ncQtSbciHzgsxza986znpStvdeLrtrBUREREREREScXMceokaa3lpDHZtntrvN7Wu3n8lN+/LPslr1RTp7vRyONP8dGe6SRhU+mBp3BYKty7uedtfDHrLqmoUJvrvGCzvGHKKOZ5+o2pOtqkZdrWw/Y58/5Q7tkwYVFgWDXr094moXTmfNsfT83mlQ+zcUog7LobUqLF0qnaYm55WjsknXdJy9tksuW8LLKyda/ab081a2S28oxIzXCydjQtRxChuH+9u886bqt3I0pobm4fXq91VJY5e9W4Khj46IrQuBnJ/I288551ri4G26a4MjH3kvh8agejHUvmK2u+282qf75cJN+7J5mnIkyYq1csjZVubFj2to++XXFl576LCsN4FurI3SFbMPrEbWdWnnJX+eOXZ8/eNlWC73tsvq+aaLg1ny0MJ62bw/GvArr8iJ9tUyv0rX5HXK1oX1myVzOhdG532PX0ZHa1kHyu7hy9Jr+dz9F4I1z4vfXqH9EGOoHHT7uq7Pfb/7AuBJeXHzi/LkQ8153U8gIiIiIiLi1DjmEPWTjjrnoa9GWk96/+5vU7XVEsJFrRcE5v7OeN75PPUwPXv94XB4oWu41rSe1NN0MGBqwEY0QcumY/nzRvrbZKH7sFrYMYeo5ZoUSultEQqgp5GmOXYwdDTdEKw9NNNqog5LV6PaJ/nH6pQYClGPyaYqZ910WH3lRLuscPtAjQ9QjcP9u/xlVa3Ulds/kM8tywUdc4h682rey4ovh3LHw80znXqdKqSuIz5sN6F2SPf7L8vhV2z9I0ddI3Vqu1XVyRrr/KivyOFof7NFGa59WjFvpbSXU/v05n5Zo39nY5fZXjdl4IPt8qQ7AF6unPPKXzWtQp7elQsx1XF8Yqsqc3UwasrAx7fKiSu54K/CKXeHh/6qazIvlLZ+8/dFal52KWdvkmPBY/BKRlY40xe29fvT/C4dKp6XzOXhUOAcrkV9xVlHHUQ/3ib9w8My9FFGGtzjZbaseCd3vJjyJz8ENudycHrucyuezzjnjBfqesdhoP/gkrbXsJzZoffDQmdd9fcPD30kmRfmeWGx3/2G+X7nmG874wbHNwc+CITu0d+AiIiIiIiIU+WYQ1Q3rAwM3uQ+XBbsD1UPhmOa5gf1+3KcLesDo9Cb4CQXIugg0zpwlG7ynnpe9lpqo5mH7Kq6NZbAxNMbxGocQtSSm/Mflc2qRmpSLbnhQ7JWBTPRfjCnidGwzR+N3Q0/8pfPqQIM1Y+qro1bUSV1L77r/I3uyiES1HkBfjBYz2mOF9u8kZsXZH+w5tesh+TJFzvdcCS33LAcbqmReX7tsID+MefVjFu4cLW8U+ClwbgZDFF1mO7Wajv9sjzirl+FzJ49Tx7Kq+FssbldOld6oU6Vc5wWqnE55hBVr3tQUyPv7Bt13j53jHZBkKeuubcw+Fs2H3XmTZ8QVfV92rxolv6ds2RRcwm1T/PM1SSNlkfDzjGgavSb4zxUE7N2u5wJLOvN8wbW8loM5LrX8GtP6vJq+Ohv3e5QSq99nVtXdSyG+2725vm1MIePym/VfnCmBWutjlzZK8+7wfNs2XTMW7/hY5u8sDUwzZ2u1zNV8bTsMrWx/eMsZhCxwHT/74O1uR2vONvHDTt1EFzq9vL3Q955cUX2Pq/KFH1t0i0y8rpnGT4mm9wgt/ALSURERERERJwcxxiifil/bqyRmpbDunaV10x24csfRpaLqh+06zqsQaHfpNevyRQeVMosd2yT6jvR8pBpAsyYkNGrBRsMZPP9vM8bYKbvc9v8IkLUCfUT6ahT358fEkwHTZcOz++9Ipd7dW252Q2y92L89nZrZK3XtbQq5slTjRtkQ+NTbi2+qqefdvenqvUV/BuvtrF9P8bNy9XArJCqutVuSLZah10Vj26Xk37Iq5tzv/Kc/FSt01PbcoMOmSbept9dx9i+ecfbQIh6o+sFd3vN3nTMOf+G5HBznbyw96Kcf/u5cFhqRoOPdi3hBo/Dcrn7T3JQB0jDQ1/m1RY1lt0n6pdDXvlw+p1cMPms6iM3GKj1S/uTj8jKSRl8TJ+/xQS/ZeqHaLVrI83Cy9EWour+a68OycXeHjmrBz3zvrdKqtxwMhxiBkPUTw5slQ2b9/m/PxoKqm20b/MGeeVwgW5Z8vTWtapKlc3q9weD3HCIasqJ/Jddpsaoc0427HPONdNthTMt7wWdro0d+NziQ1RzXXGMtmjwa9R627DU7WUNUd2a2F/K0OWz0nPyotdPsFnXxq68Gsqq9v6sqmfl7U/C0xEREREREXFqHHufqOVYsJbmsJxs9UIWNyAyNS8joUdc/6uXOpe60/2H6pC6Fmw5TVV9bSGq7mcxGFKNo8+9HQ7pvIf4aVpLyQwuNmuWqCb8qt/NcC3PqM7+3v6oG/RV1LWGlh3ub9f9d0b3s66dmqqTjryQISbkvuIcR6aZblewWbWpHZZ/LCXWaL30jqyYlZJZjzTLocTfN44GQlS13l2NKqyqldaTCQF1CbWi/fAnQWuImqQtrNS/I3iOXj78Si5kLdJ3Tkc+11fX6LaqB42qqJJ51vme0XOuFP3tWMQ2L2xuG+e2vT7GI59vgtJOXQYGt30wRA3+jTI/FCxXHZS2depaplXOOpsgV89z93kuKLUdH6aWudffay4ojb5ICQWh5qVZsSFqoOuB/GuFeVHlfKezTaIBZ6HtZQ1R3fWKlEm6rExV1EnbmbGG7YiIiIiIiDiRTk2IqmvwBfvGy9NvzlgrGzd5TSvz+gAd2ivPqwfQUFNIE6DFDbxkHsjtYUJx2kI6M21ijD7ke30fxvT5OpW6g7Ss0E1vH5bGvZYBYi4dlJc3bJCNnX3ytfNv0yQ5NdvZJ3lhZEyfpCYAsXXnYOaFuosYkn0NKiiN9hWpPbzeq60ZqZGWVNt1SgyFqI6XOmWp8++Kp3eFmwMHLSFETQoy19R5tQutIWpS0/hXDufXCLeEqMUEuFHD6xJUr1ewBnGxvtmY6ybB+tmFnegQ9eaFN6VeBcGRz/eDUr/8zDVBn9QQ1dl2l3Y97Z1TfvkcDFED5aXtO/0g1Clj+3Q57/9teFl/3U0t1WJDVHNeONqOI/9zLSFvySGqUy52b1QvBqMvvgI18N1uHzJyusiB3hAREREREXFynZoQ1RKg2Bw6vF6HcUpbKGqCsdw8v++8aB9zxk86pE7NL1ALzWivjWYLUW2eke2qb9WKBtkXO1J4eZqH9PgQaQr0R4avkKoqr4l8qK9D12E5tkkNmmJqT+bCzXD/icaY/m1NDS7bwGJmXrA7Bx02pmpbA032A5pAJRSYmNpottquU2Q0RPW3n3Ms9g/Jl7bm9L2t3qA4a97Nn6c0ze0LaD/mdMBnCZoSjSsDLu+Sp53pXjPuwPSgpi/NYD+Yeer1KicU1MdCofIpST9EG3MoqcyFqHlGPj8YlEZDzOC84N8oJyJEzb0IM0FuOSFqhax/Mxd22vaJv+7mt413iGrpu7voEDVP2zXDG8xq9SO5PnQfWb1d/jLmbiAQERERERFxPJ3WIWquubLzYPkfHfKpZRkzoEfVb4/KsN8sOy6Qc5b3R24uTvs6FheihtfNvky52gOtKXTosKzXTeUb9l6UYTM4TNVaORQMP3Vw4Q9kZLpqcJvtBpYz6lAtOMq10jSzt9VmNvOqNh3Lm2Ztlq80o28Hg9ek2q5TZV6ImvttjW26L+FSLTIAtR9zOuAbrxA18GIkrosCsx5eX7D58z0TgsciLVw+xeuHaGMOJZW532K2/c0zO7x9Hfl873t1SBioza+2ZWhexAkJUZ1/myC34vm9cuV+DFEDNVH3u9eypGvGTRn4oFNe9Ackmy0rdvWP+7UDERERERERy3NqQlTddLpwSDHkPKzqELWiTjqsD5+6tqfzcLq1fa1XC7XUQMeieQi2N+MuLkQ1TcFrn7U0cS5o8ojg3vpVyPrD9vmT7ZnteqCgNvPQPyz9bd42zI22fl466pxtUvG87DXN9k14aatRqtTHSrQvRG9QMfvvN9s9OLK4t3x8s3zTv24weE2s7TpVWkJUP5BsfU+OJDRPj23abgbKKqA5JyY2RHXUI5ZX1HXkf+b5Dq+P3KpG6Ursh1avV1zt2yR1zd3C5VO8fog25lBSmR+i+mVQ5PO9782Fh2aUeVWz92RkXtCJClFHhk9Kq1s+q9YC5YSoThn7gX6REvzcgP66m5cd4x2iWo7tkkNUpbteydcMz5typtN0iTJbNh2zl1mIiIiIiIg4uU7TgaU8/b4yKyq8ICCm38dws//xeeg0QZzt4brYENV/0C7LYj67mAfyyTCmyb0acV2FpqkKqWs/I2fa65z9WCWNXVdyy5jAI+ZY8Pp+jY5+n9TM3gw4FR44zOwL+/40tR9z/UcqTbCa2HfvZKu3V/B3mPX0t9GlE/JBsClw3vl2U67q0dxLcdJCVL/LB3XcBGri+cdT5BiyqtfrHu0TVW0jb3T+8H6MhqjBELOhYQpCVMdckNvg9m1q5pky1nbs+ANLpRqla/iwrFfBeeRzjf6613XIJ2pasSHqSNLn5gaWso2cX2h7WUNUMzp/oMb90EfvSfvmd+S0WcZ3WE5srXE/I38wLURERERERJwKpyZENc2kg02now73S5sbVKpQtF+HlhXy/F5LeDJ8Qra6IZ5j/e74zyxB7yE5bgT/4kLU8jQhoD3s8Lwsu55Wy6iAwTZ/sjUhT/76BEfXV/tv3npTK1UbM6CT680zssPdztEBtEz4kb+N/GbOkXknW71AIhzGevr96NZulzOB6YVqr06JOiBa0fyavNzZJV2dm+VJ3WTb6xfY1N6eJ38wA3GFQtQhObZ5vlRU1El7f+R3Hd1s7RfYOK/K9mJB7/tCfQxvPhr4G8dIiDp8uVe27wwsE+0ewikPOp70mjnnajYnqddr1kP29UlyXpV7TNoCu2Kd+BA155n2Z6V+4wE3QMwLUR2H9jV455irvVyZyBA111rA08zLrVfk5cvIsLM+OmB1rxG5Efir5j0iVe65X+H8/5Pyh2MndHkZ6KqjUIjqd89hXp4406Llj+lmxJn39K7LuenaskJU41CXvPTkanmz92vdFUf45Y2v+R3jcgwhIiIiIiLiWJ2aENWEkLF9TV5xHlJVTbSUzF5/2H24zY3gvl4OR2o7mnDFWFzIkqSphRQXkk5kiKoDEzPStNVjskkNrFNq7b8J02wPSw3Bmxdkb+PDet/Mkie398rlYNBq+jwNNvF3HL7crQepUn8XDVlMiLpUOv2BhW7KhcwLMs8EtqZWmtb0T5t6vE36A99/80y7PDnLmW4JFU1QYgtR1fq1b9ggm99N6rPQBOLREHgM6mBl7aZN3u9xzYXT5jwJ1dqO1ES94nyGGxpHf/OUhKhn5ML+9TJf7bdIWJQL4GfLvHned89u2CsXi3pxoNernABKb68ZEaJe6ZJGVRboENAWooZDzKkIUcNBrj/P77M1srzpT9k5b9Ye8rrkGHKOF3O8VzXul48yXu3W1OOP65cmgbL4mDk3npZdwS5RTK3cQNngv0CJlOWm9mxen87a8kNU081JjbSqlxzmJVKkXFKaFz+128+EpiMiIiIiIuLUOEUhqqnlZw8h/ZBntvMA6wdrQ3J4vQ5WN3/oTgsGbRV1bXJmwHmA1w/ls1fsynsoLV7TPN0eOExoiGoCr6RaunqZUP+dU2wumJsnTzW3y7td70p7c7084gaU82Tl5s2yUgdhFfOekvYPb+i/DdQGm7VIVm/YII31j8isVIXM/+16qVfTI4NKqZq476wI/k2j1KuRrWc9Kdt3b3L7s8zfNlec7/HCdvX9jf73qPWbL5uO5tdwvtS5VC+/Ura/6/yeF5vlHTe0NTWBlZGgJqgJiKt+K0fLPhYj6vBxbddF6XWbnx+Wkxf16Pp+7e3IcRkJUVWQc3Fvg7e/nG3WEa2RGqMJhqwhaomBvhngraJC70dnH6x3flMokB6+LB9s8rpzcJ3zonQNFLeu/nrVPmvpb7iAa+rcEG7ahKg398sadxsE+wC+KVfP7pf1uvwztSW97i/yy61cCGkr04alq1HNc/bHWJuO61YG+dvOlJnheX5QrgP9mwMfSKvuAiRcaz33Yq2qscuZbspoZbTbB9OFgQrdM3Lh5oj7ue0r1N/Pdo7f4Lk+LP1uNyPOb69rd64ZanCnVr1O82R9aNnc3yRvr2E5s0Mft8HAduiifNCu+zo1LxA/6ZA69W/HWU9ul97LzvE9PCQfmRcLoWsgIiIiIiIiTqVTFqKamoFLOy+FpsfWklNe2SsNizZJ9+Wbcrl7syxSAZ378NkuZ5wHZbXM8OUuP0itmPeCZIJ9QxarCZ1ia4NOXIhqgrvYUeQdvWVimoBOmcNyubdTXnxyntfcVjWjXlgvjS/vl4+G9HoOX5be9tUy/5H14dpdN89I5+r5upnuLHnoyRels/eyW0vMDX4sfRKqAH3zkw+5IWhF1Xyp37zfDUtMyGhrgjsyfFG6tzvfr2tUVlTNkydf7PSCi+iyevmu5ie9GpiqpqXze17r/dqZNywnX6nT62vrl1VrBsVaeyihtmqJmhA1r1m3s06t0cG9tHkhqre8CY9UUNMVtw0Cjl+IekX2Pq/DU8fZK9rD+8A5Tk5nmqVO7ycVlD9pRixXIb2zr/1jKtapDFGvSJc7Evs4vOjQ+ztZVasxF1Iaw+tv5kdCVHNshCyzXMtb1/B3mSA3ul1vnvmTvFjndaHgnv/OebZ5/wW5GVjG84qc6Hwxd1wYV2TkbF+X9ATL+isnpPPFJ+UhfY1wz19TroQ+U3lTzvwp8LlO2bWwfrPst107Cm6v/P1g1e8+wDlOne978sXNTtnplWdq/qyHapLLJkRERERERJx0pyxEHRn5UDarsDMQvlw5oWsA5dUWyqn6TmxfOc9/4F60uTvcPFx55WigKbizTHNGTkcfRs++Kxtf7swfVMbvYzIlVb89GhN+lRuiDslHR8x39cjZ4Ijgn5yUA9tX6ubopn9Lm/q7I/133ovaB5WaLuoatAn7wWuOW+Ecy+MYhMSEqP7gapZmwVe6Gt3wylY7163dF1vjLuz4hajnpUPVNlQ1lDvP6LBsWIYunpTMZl17WX2me+7qcNwdsXx1aN4j9c3SfuCkXLQGqnq9yqkJqoOyYkLU/o6n5MnV4RC28SlTPlVIwz6vOTqOv34XATV1UueU2TR7R0RERERExIl0CkNUU6OyVlpPqhBkWPp3qaaOkaaZvjfkw5cX+TV1UrNXSLu1VpF2+KLsfUGHGbYmkUN73ZGivUDGYmIzynJD1MCI1LHOkic74vvZNH34RWvw3nuawWTGsT/RcXNYLnepGtNJo8TrJv8VznE0Xk35lXE1Ud1asy/qpvnB7gaMMYGe83enzxYOUJXj2Zxf1RT84Iyq6feJdP2u3q8d7FpRJXUvdsoHA5aagDcvyP7NT+X6vtXOa+mRU6YJ/UQY8/uG9j5vX95x1pMdY+hSBAvq94ddIVXzm2n2joiIiIiIiBPqlIaoI0OHZG1VSiqe36v7vhuWixci/SIG9AbNCdZOK+SwXO7ulHetfT5ekoMvh2uQGTe3/6XA55cfol4+/Ir1O11f7gw3Sc1TN4OOGezk3lIPnpXU5+hUOHRSdr2owvxZ8mS7qUVpUfcNWdGwLzzq91iNC1EjfvjywsDATgul/uWjYxxsbZxD1IBmEJ9Zj9TL5sxJGSjm3L45ICczL8tq1QR69iY5NjwiQx8dCdcqH0+PfGTfj5/3Sde77bI5cB6/3Nklh08OxB8bM8m8JvpJltkNACIiIiIiIuIMcGpDVMdLu1bIQ3Uvy4c37PPDDsvNm+PYNLpsh2XoS9UM/0sZmsyaZjc+lJfrHpIVu+71WqiOZlCm2H5pp8oPpX31ZsmcTqgFrRz6SI50dcmRj8a5OffNq273D1eLeokwU7wpV68mvTxARERERERERJxapzxERbSqB2WyDSqFiIiIiIiIiIg4mRKiIiIiIiIiIiIiIiZIiIqIiIiIiIiIiIiYICEqIiIiIiIiIiIiYoKEqIiIiIiIiIiIiIgJEqIiIiIiIiIiIiIiJkiIioiIiIiIiIiIiJggISoiIiIiIiIiIiJigoSoiIiIiIiIiIiIiAkSoiIiIiIiIiIiIiImSIiKiIiIiIiIiIiImCAhKiIiIiIiIiIiImKChKiIiIiIiIiIiIiICRKiIiIiIiIiIiIiIibohqiIiIiIiIiIiIiIaNcNUQEAAAAAAAAAAADADiEqAAAAAAAAAAAAQAKEqAAAAAAAAAAAAAAJEKICAAAAAAAAAAAAJECICgAAAAAAAAAAAJAAISoAAAAAAAAAAABAAoSoAAAAAAAAAAAAAAkQogIAAAAAAAAAAAAkQIgKAAAAAAAAAAAAkAAhKgAAAAAAAAAAAEAChKgAAAAAAAAAAAAACRCiAgAAAAAAAAAAACRAiAoAAAAAAAAAAACQwLQMUbPZrP4/AAAAAAAAAAAAgKll2oWoo4MZqa9eJh0X7+gpcWTlaqZe5q/plNPXR/W0ieOjV2ultrZWXv1IT4AYsjI6SggOUDLZH+Qf3/xDfuD0uQe4Kyc2O9eMxb+RIzf0JACYUdx4b03ovi97dY80NWXk05FyC+lT0pJKSWpJRob0FJguUGYDwEzlhry3RuUUr4p3ucrK1T1N0pT5VMq+XAFAItMuRL1zbocsSjs3menkIDV7NSPL1HKpudJyKiFw/ehV9ya4WNe8Z797OtWivivlfJeekMdH8qrl84rXFHwzmVEZPNAgc+c2yMGrtlLbFPIFjE2qx7qNw4a+xg2wvpFvxtN/Tny4D9Ob0X/mjocbA2flxIkTjl2yc+tW2bq1WVYtVsdijVS7ZZnngo4B5/YHZjYD0lGr9udKOfitnjRujFM5mPRGcCgjS/TxWJaERHAPMJRZ4h7PK92T+F8yuH+N1Lj3pzWypqyH0+JD1NEffuA6MKlQZlNmA8xUhiSzRJ3Luvz616DsX1MjaefcTteskcynI1xPAMaZSQ9R7559Q5ra+uRWwtl851SLzFUX9fQy2T1oCaKyV2W3W1ikZVnmanLBUGSIWlOddm8klmTstxGFQ1R9c5yulhrL58drApQW5xOi3JGLBzbKxv0z5dZmVAZ3L3ML7dTcddKTt5NNIV/A2I2st/Hy13UYZXxdljvTa5v3hafva5ZaZ/ry1wPTlK8vd78n9DVjvQG1GX+wwD2H85BUU+0d+2VbKXPcMmGr/PVH/bEwrRna75TPBy46JXWEuz3SqPZpbYfzaB5DUS9u/umUqlF0OVg5J3ItMc6RymLmJ5VPpjxcsFq2uoF/sa6WBerveCAH587sVl+bNL1xVu7qKTONG3uWuWVz8L5w9Hq3bKjx7hcrV/1FbunpxVFciOpVEkjLoi2n5LaeBuMDZXZUymyAmc8N2bPMOY9TSyR3uRqV690bvBd/zvPFqr+UdrWCqSF7q0/amt6QszP1xuk+YnJD1OyAdCywXKzvXpP+YMh14rjsXP0z56RfJL87cDww3fPddXPdG9ifLdshB0Pz+uVamQedqXEw5hC15BsREyzaQtS7zvdWSyrdKD2FejeYNtxx1tnbP6m5zm8KrXfSb3UwN4GxG1lv47z53vS8fac/L3/xlvx9eeM9WWO9eS3NOZXq92njDxa459DHpjL6ImXxKmk2DyyvZuSILq/ODtzwHrr+QY2jGckd56HbuTmtds7zvMvOhR1SrY6Fxp74AKmoFze2sjKuHDSMdb5DwbI4Dv3ZPJCDg3dftUA6BmZoCafvFfLuLbK3pG/LGumM+V3mfrFknfNNdRlQ795HFFFJAEqDMtsCZTbAvYB33QmGqB4qlNuyplNm6mX4vkOX5bRKnP6MQ4iqL8BJb281d4+vk3SqWlpORW5RiroxKcb8wqNYpmeI6jDY6b4lXtA5qCfMALJXJbNM1dRIy/xXP5Z/6ckiV2X34oTfWvAmUG/jiaiJOmbuyMVMg1eDWjm3QTIF+/WFewd9bMYd2zMc983oqsVujf10dY3Ub0tuTWD49uBKSVW3yjmz7ECHc07ayumsjHx6QDbWq5r5aamuqZeNhwctNXocRq/L6cxGqZ9T6Z1rTjlTvWiVtPXdst5wZEf+Jpmmeu8Fhwq467dJ7zj0oz3YucD5bvs1x/3dzrot3n1VT7FgyjtrzaGXZFl13PGkj7VC5WTZ8x3MuuWVtYX0ymIeyMHl7nFZl05Jet3x+GBq0iijSbUuY1SZZ51vXPOeBDuCGnw/ej4bda2/6mXykmV+S8cOWTfXma8C1A5LbcliUAFv2ypZrFpG6PKur5jC+j6AMtsmZTbAtKPErgiVXiUedf9sn2+M67YQpgt35fi6tPO8sk6OT/2NEyQw9hDVXLib+wok5jostIWtBS/++6TZ7atoubxunX9C9jXXxt4cFcO0DVGdk6mn0ZkfDCJmAnfOyYFoCHL7gDyjttGyPaEHDh9zHBS6kYxt8lSk+sEo6X60FLIjn0pnfS7QqdnQLZMw1hlMK/SxeQ+GqKb/6cq6bdI98JWc373SrbHzzIFCDU29sivtnGim6HLL2bxrgOoAv95trlhZt1EyR7qkrV7VZk/Lsj2R0vTGe7LC3Cgu0jV8m+q8po6W/rHvDnR6fWdX1snGzBE5ktkodW6Yukwy1n6bi+Sus7/VA7Nfa8mU40VoCp7E8i7puqCPtdhmmzqoKTQ/qQA061auPJCDZqBD3Zs9IwWLiwnHlNETYNHHu14Hy/LuoKqmBmrZAap+ge2Ud9u6B+Sr87tlpSqnnjlAtwCU2clSZgNMH3QriIkwLueAaYRb4aSY5yyYSsYeouoT3et4P4GkGpUFw7NCQaP6CBWCxoWoWfnhH9F+i8J+1rE4sXApOkQd1z5RPe72NDrz07JuRr+SuCN9zdXuNowtFG7skWVqGy7ZLfZ847Z8rkLzzxMKFf32Lqn/fbn9uRu8J31McYzK9d4t3kBoar1V7dMSOu8upsmfezxGbo6D28+E/77OjfAp3Y9bkom1LZJQtVy26Vp9zue4tRI3ZuS0nxpbHkzMzXn0Jj9w066C6EzTIn+Apco5i2VVW284jDbHR5KLnWPHtg55pp1zObCn7lyUAxtzv8vrn3StbGtbJYue2+OvZzzmAf1eC1EHpVN1wRJ6iaN/a9IDnSLrLOfsz8YeU259KwdXpqR6xwX9bw/TB/bclr7cQC2m65e8N7F35NS2VdL2t+B5lpWR7kavP9rgg2D2guxQtbqqm6U3MAJM1rk5cR9IxxAseK0qgmVycNA83X+d38et1vSZa7bbWB/IJ6N/vd8csV4v4z0iv1F/V+QD+USVgUNntxTun7jgi98IeQ81+n7DOt30T5bkYtl91ZQbnsv2BF8vZp2P9vre9FwiL2+P/FbHQqdhiNsHZWXC/Yaqcb6tPnD8Lm6Szn57DW8P1efaOvf8jV0P/TAwo1rTGHQT7/F76NT7O3R+ZOVWj+m3bq40HCy/Cb9X07JaWgNv3L1z7F67LpUOZXac06PMnpD71sg6pObukAvOqZH3/S17QveM6S1n9Qd4RJdveTU/4Cq2jFB9Kru1zUsquCeK8PXHrnedC2+D4Eux/PvtJZlTRV7/9EcUS+Ram1550L2Hix6TSzIn858B3O1teTZQ04u8X7ga3AbpLRI6SqLHWsur+du2yHOsXC7sUM/YY69MlqRXKSJ83FS3nstds/Luh5zycMrvx9QuDt5L2W3uuzqx5UD0GIkYLt/0QIcLOp2nMJiujDlE9Q6qwietVxuhVjpsbf7NgRV7UUm6OfFIXI9snzRHDtY4404AU0jHX/eKuRglmXCTqzu8nx5N4mzYQupA5/rZEfnbjkVeITrXufDE/ogLssNtDhXW3eaD71vezltcrR4inAe21ZZ5Nt8vr3gK1z6tlLptkcCvKLLOQ48X3nvhn576wzXp3uCNqphybhLc1xPBY1jfCPrc6ZYGZ7pXAGelr1ktVy2N3c7Dr19oL5M9N0ZluFcP2lbqBUvhd9PgXDSdv7/j7OHh8x1eTb/0Imm7YHasWQfL95jfEZx+xzl3dBPGxu4RyTrHy6ema4RAv7rZvmbvuxu75VY2dzOkgofR4V79Gc3S537wqPT+xpsf/K7R4fP+fvPDPP93zZWWPhXOOcfztV7ZskhfdAP7Jp6xnv/5jt+D+xi4ulsWO+tSGyy49QuxguvnBhCBkY7dciwSXgeCzr5I1auru9W5kZbIfYwdMyhIoBw1zTPzX9p4YW75ozDr1gGpRvHz4SBxA5Tomzt/uyVe94p4II+9GI11vkPBa3Ic+rOLfliYiDLQHDvOtn5N1egz56Y6lpxz+4vdXplV1HkdxpRBuXLGI3vxNTco9B8MzbpWN0r3ray+P3H+rVphjA5Lr+43vFl9SPB3hba3GS1c2SDdkXIwug6Fue0c9+ZBwnJcBcvhHqd098tUS9+c+mWlGZBTGX+ozOCHAX0eFFcW65e8ieqm07XNsk9Pe9cc56mfybIdByPLa/uvFXHvp7tLCpU7+iXYBD+8T38os+PRnz2lZfYE3rfqfnDVOrjlrcYrk6ulude8kDXdjTmGtoU5dpS18tpF/Rn63qi4MFB3JWJCeWXJ+2mCyDplhP7duRBH3QPnBtAzlaRy156UzHXun8O7s8GZXsb1r0T8l+CR7e49oy+RTn8w6tz+DIdTd6S7wZtujqdS7hfMstG8wavs5H1urfM50WMqvA4TQ7F5TBKjvb/RvyNwf+Hss/OdXmuxVLVzHrsTA+dL2rmXDt5mZy/Ka+qaX8b2LYWi78f8dV3inL/OjZQJWlUQnv1BvtADYnv7aALLAXM/0fl5JC/x/GckQ/ByswXOMa0nwLRjzCGqm+7bmuiH0A+t0Tc3Bv+COVZjCg9zkMc2ldkqLy3zaknG3SwXHaKWfLNq3oa/6lxm49A3Z37hNd3IBVo59Y3k//urtOgLcaqIJrR3Lqp+Ec3bd+UacbtvmTYhqur7dI2uNZKSdM2akmqfRvFvLvKOmztOga22m7npNxceZbRWsjfPO3b1A6upZeefW+bcuC0HnnH+XfCczef2wZXeDWDkgnn7wDPeegVukv03w3knjP4d/vSsnGv1zr1wzUDz+3M3a+Fmobljzpyz3nrkXtTEroOp5ai3gVdDJfI2VVGg1lYYs38iNVnG4LTotyj6EDk6KLtV4GwJPaO4+ytwXGedz0pHgktz7Fhrp+vvDtfOi8G/ac+Vkd7+tweltoDWq4VXK/VvXCgQWOiXPXHdkujaa9G32CbU9R8cEh96p8kDecldp+gaUyVcB8e/DNQ3u37t6dzfeT/ZlDkxgUoS5uY7ul+i5WykKVbeb9Rd23gvJwK/K7gNQjXvA98Xtw4F8Mtv698GyuEFTrmoD1FTNuY9JI3+07vx/7zTv3eLP5xMjVr7uTjpFBxEUt9zKGLP0awM9HXLwHDwqSd4fI6zRZ1P+vv9ZUdl0H04rHbKnAKF9eh16VWtLnQoXjl/lew8d0c/pEZffOmyVj0gqxeeB3L9U6erF0nTgZi+rJ1t5vV7bWp9JvVlHVnWKYcWr9omByL3WncuZqRp8WJper/Q1qHMjnc6lNkTd9/qnqsd3nNB7h5Pf15o/YPPMcF9eFa26Pv90DNm3jomMSr/dIOSz6XTfEfSvpxU8u+lfUwAbbrA8K89jtFWQu68cq5/pZJ7NvDvG7PnpNU5v8MDxsX/rvCzQWn3C/5v8ed7BGs65r4vYdsWyY331ljO2YCB/rjNuuUdWs4zT1/3gIQuV3HE3l+Y88g8YwXPl2hLEz2vjO1bEsXej+mXZP75H/07ffx4x3nwd41zOaCvM3n7JwbvmamIlt4wZYwxRP27vN/knMSJbacV+qQp1BdmbMhpOmxfIKut800Iaj+IzRuipDdBd6/1u2/8+2OG9y8cok4sXgFdxEk6JXwrZ98y+yK/c33VXHd+3SQNbqALx4nbT+YCUC0rd3+aa35cJtabUfcB9R/yw8iX8vHALfkhcOGprjYPusFaPd489yL942eyz9kPe0ytUEsBf/fCHmc/vV9iraDAhSU6eu23B2Wl+x25h62iQ1S/BmGw2beH/5bRvVn7UT7b5xxfe0zAZbk5uXtB9ji/3eTitnXI/vAPZ9v+U3649Zl8/JVXW9rsA1v5oJpHVs5JesFh0L8r7kXRTEXfDKubXdUMza2ZkF4mHbGDphXTjNnRPYb0g0xcuKLP5WJuPu86y7oPwX5tfXN8RG8EPfJvNk3tVMdC+1CfU9EHboN56x49nr2mVoHWGObctBZWSeuvj7XJ6F9vqh7Ix1IGOsfgh69tlVePm0/T28vR/8lDx+XVrW/J2VLvTfUxmbdfIuXsj5/tc7bzHskVw9HfeFcu7HH2hVtY5dYvWKMiWLMl9H1x65CE/0LI8nkKPQCUmhc633SXHHnTfSzb1sIN3VQ3aZlJw5y/1TV5x69XszZ4n6V/X3TF/e0SLLtMUJLs3wePy/YndCuWdI2syZyXG5blQv7jBx3+JKGDKBU0jV7XtQIL96+avbpH98Wq+qRucsuIpjq1fktk5Up1rqnagHphhb4mpJavc68H6eql0qTKFb9vasvgsc4anDOtkSrny6pmZ/nmFfpldKWsOx5ew6H9Xq2ndM0Kaes6ISe62mSF+zLe+ezTP+qlAi2X4p4tDJTZCU6DMnvC7ls1JgxMO/tGrZfbmibc7UVu/ykDtcrM8R5ZH9s6FkP8vfFUYbmXdhj9p1fujHz5sQzc0uWPe+2pdvant3woOHPnlXP9Kx2/Nqr+PO9lX7TfbfvvUoT3QWn3C/5vccw9M+iyV0/PfV/8OhSL9322waJ0V4DBc1DfG0QPLRPG+TXEk7DdX2R/kH8416F//nBLPvv4K11jUv8259xW997hUF3PK2P7loRtXRXRc/PGh/La1lcltwr5fzd0/FXZ+tZZZ/vk9tm4lwPu9xbZuk5hXqRHdyhMG8beJ2oxmIMs7kAoNN8/qG03Jx5eQWM/iL0bofKaDhhsIepHr0YLtXE0Ekybgnv6n0u2fTUo7+fdFBbQLczsJL6Z0zUiKudY5vkWE4rFYS4ARRSYRZB/c+HgFrTRz9c3nLsPeG/MQg8qgZvRKGXe6OXhB6W2moG5GwjTRL7YEDXXHMOyfn5NrEhNGJfchS7u5sS2Dt72Dpcjflgxt0X6yk7F9e8K7sd7ARNyV1a6D1pqcKnklyG6Seuel+Rh5+GzeZ9pkvq2rPmZc9Pd8l7uZZU5pmJu7MyxUagm6p2LnV4IkHYe9v2Nb8Jc29vtrFx8TdVqDpanWbnQVuOOZv3cngJ9EuobMPtxF9dVgFmfQLOjxOte0jXPlEFj1Pq9GlNbr+AL0ii62WJktPIkJrwMDGyvpJ9cFJabb5cC5az1N/oE92fupt3ct+R9X9w6xGKa8c+VlhbV5NLyt7qGhNqm4S6LAy9Foi/PXIrctonnzCSj95VtXbz9FNyHOqiL7DdTQ7ekLpZGr8vpzlwrlsJlaamY5oZOWa3KQzW4lLWWZ4A7x2WdG6DOlXU9wWXvOLvMa3IbbQGVC/fnSkMm/CL5jjMv/2E9K1czXnPJ9LLd4re2dfDDkNB36Bo/0dYO2avS1xus5Xpb3m9w7vcq58u2yICCeVBmJzANy+zxum/1MbXo1L3kqFfzLa9P9Nw9pdI8L5rayJ6B9SlzHWdKiOquZ/R6pffx7gOt3vWi2jnW/d1p2/8eyde/cjC1UdX3eS/j81qSxfwuRfI+SL6m+b9FabqXCDwfKXPfF78OxZJ/TTLozw5uU30dD3+XHundOfbDNcFj0GVlqBzTx3p4e+jvbzmgK0NYfncZ27ckbOuqKHRuxv2dS26fKce1HEg4R+zobTVu5w2MN5MTouoTO7YmqDkIY88oc1DbDniP+ILG3CCVcuDmYwrd4Cr6BfFEGNkWJlCY/tW6bfsqV2gWbUKh4e3rYEBTvK8vV58ffxwVxvyWsR1Phrybi+yI9Leqm73o53vfqy5SfrNM/yYwNy+PMm/08gi8hcs/TQMXHf2gHX+Torefnp67IbHtk9xxk//bct9p/d0OeevgPMTuW6VuJiLf5Tyc7TH926qaQZ2ny+jfVq/rPXWxCw6cVinPdFpqXmcH5D310qOjT27pSQp3vwab3rnHT+QY1DcycdcFc2zkH29eUHsk86o0LfX6GKuc3yQHgk/nDl4IlXbKzOCjkhrExRsIp9xzIq+JZxATOkePAzM9WGMq8bqXdM0Ln0P5lDnfNNEed/+hayXZmfAy0Pxex9hNUixl3rTn/cYQufVTerXhwjVbQt+X+ACQj9lWbrcoMX+be0DIX3+/HC2w7onbVnepFB1UbkrQ+8p2rHj7KbgN9HkYCvl0P6PF9lXmhqdNMt8MWli5QF7a80mB2qeBPuWLZPR6rh/vymc65dP8wloG3lMvqTukzy2sTRBh6fNWYbrBioTnJtx/Zu//zf8bU84Fa/PrPrTz+sR0MUGlpbZnWU237VBml+oUl9kFytOy0LVR043rnP/OlR15B2PgPtbRa2oe7Acxsj5lrmP8vfFUkX8vnR3pl1ZbX8p+CJTrX9tvUu/P8/4ZJPn6Vx7mBcySdetkQbS7GZf832VI3gf6XHO0zfZ/i9J0CRZqNRL8vvh1KJb8a5JBf3Zwm+pjMnSdNeVvsX2S590jOM8B+1a55254e+jvdyZmL+zw7qn9Jvu5efkkb9+SiLsXKnRuxv2dS26fKcezHPCuQ0tkbXAQY7ermjbptT506v5Zp21XjjA5Iao+YGMLEXMQxjZDMSPYx/c3mN8My2D6sSiyr8KYt7im0E0+6c0bnwnoCLjQNpw2mAIov3Dybr6Tt43pIzHaaXmQ+ItKYbz9aCs4i8VcAMr7/iihC3LI6OcHbjjNYDwp0xxpEm5G/YuO7RwIXHT0BT3+JkVvPz099/tt+yR3sc1vhpf7zrhzwl+HPG3fpQLDbbLUDJSSrpal27plsOiaqXpd/RuaYgYZsft53s3gFJC9KgcbvJpIldVeUJn/pt8ENN5ANDm8fRPs78rtHzVS88Pse3sLATPQhKWzdr8jd8+5a96TQdsT39AePehZjaxo63K2bZe0rVC1TefKXLdWTBl9MDmY9bZdC0yzqWhfX9bp5ty0XlTiy9HChM+xogmc4+Nrctkz4WWg2R6OpW6SPApuI/tv9X+j9SEyt35K9xiJ1GwJHQf+OhRxbOhm/OllGXG7I4/529w+CNS60/jlqLWbiyK3beKxPsnodbEdK952CO9D7/fnain6XYc09iQ2k1eDGB7YuFTfu5ZqKed9Vq4e1AMxVlZ73+c/zAYwx4JZ7wIP1yYYCJdlltAzhDkezPqb/u6i14gc5vjKHRompE7Loi3lDNiZD2V2qU5xmT1e960hcn2j2gexCdzHKt2XB4EuI6LrU+Y6xt8bTxWR3x00er1yjzfv9+YFZ4F5UZKvf+WS6xvVPuBYwu8yWvdB8jUtfOx795DhViPBYzq3DvZ7k8LYrkke+rND21Svu98S4K6zW5LL3zwSypTw9tDf706MhurBeVGSt29JFCz/Ys5N/+9sZXXkuBnHcsA/duY2eGOpBAa1yut33sWsSznXFJgMpleIOmYtB3HkgbugMWd1/o2eBd1Zdn4zkXGg0DacNiSc9PqmPfbh465TuKqCylqY5Ii/gSvWsRRI5gJQuMAshrybi+yI9Dari170873vNfvfvNX3tmV4XojxuhkNXKzyz4HARUf/jvgbRb399PTcvrTtE7Otnd85lhDVrMOo83BW6ILkXNSu9Zr+15xl04tkx7kibj7yarPk1r1UE8uYSWHIeVBWv1/3p2cG4ooeQ+Z8Nb/57jXpV0Hwey3Oef4zWfO2CYb3SXNtSh5+aU8oJPb6eY4b0VLftMS+gc3KD//4Sj7u0jVlK+tlj2XQutHBw6HBSeo3HpBPh/u8/gxDN5/FY45Z2366sa/euyFy1qfT7zfWvFyLBA/m3LTucEs5evtzvT0LqUcAX/66ZZ7NfnG7Ai/6802N/mJbA+jPj2HCy8DAuTjmcyvu5rtAOZv3G0Po9VMvcdV/1e/RLU+WLLGUj4kPAEH0g02wm4uYv82Vw/dPiLq447O8Gnifdai+McP70OvPVfdj5peFC5xzOb+8UTUDvzqdkY26hry3TZ392HrEcl7Y9MrKwvs2x5Czfu55sKxDLt7JBUXhc8E8TOd+m9nncddPEwyEX3KZ/Z1/nLiY66AfUpmHz7gXVrlR2YOVp7K3evyRwd1uCXqvl1wzNwhl9gwrswuUp+XiD4JqPX/1/jPlsKplqJ8f00457D1HBtanzHWcziGq2RfZkV5pDt7bGdzrh/m9JjjTAV1oXpjk61+5BAZDTDvlS95tevwzQvI+SL6meb9FVbpSy6jyQdcWTC+RJXpU99z3xa9DsXjft1g6Pgtfq7755jPpUN8X2qb6JZe+VvvdpQQGiyxI3j3CqPPobis/9W/TE/1Q3f2u8LwwRd4zFEPcvVChczPu71z0uk9AOeCOvXMkI0dDO8OMDWFrqWOOn+LvB2BymZwQ9ewW98IZW4gk3pgoCh9IXkFT+CCORZ9UcU1LTaGbdNKbwROql72U38dnESb2sa3Xr6iRqqeUpH1lbkznOg8k0Tu0u85h4tV8W+Lsg6TyPv6iUtgjvxlrgWQuAGM41gJYby7cfR39/MgNZ+BhrnNwEm5GdZcc9nPA7HNH/QY0/iZFbz893f/91n2Su9jm/7bcd8aVK7Z18L6viP3vPBT8zQyEUSDUdzHb2X8jbtb9N3LEchza9B7gx+HGYoyY/v6qnd9i7ktVqOPWvjI12vzzNfcwEm3SZDd3HHr7J+a41Mdb2tkYSWWBInvxNe9mp8iXV3E1j4oleZAc1V3ABt3voe5n0Lxci9b4SrzuWcpR/8ZvvI3ZB9mz8saqbZLpu+bs7TCJ+65EJrwMDJQjYz63/H0QKUMKlLPW3+ij16+5xQv3q3fITjfAch7QOizfF7cOEbzAYq7zmwNPlzF/O+HN+fX2iRvYZ1Lx91WckW2gy6LFuwfl6m5vP9payvx4eqvMcc97TzXC/fqV0b6XC1H4XjeEGRAs2H/onT4vAEkvk4x+sXTXuQdXD7gLnDLPm2LCy7gapabGaWRQKVMpIWYgJ1O2+uW2qVFtrfmnMN1W5Gr6+jjX4E8zuT5k5zYc1Nee0qHMNudxzN+VyIy5bw3i1oStldd2e/155lfm0PtviVMOu/txpezc6ZWLjR0d+etT5jra7kunFvu9tLue0TI/so9zIZ1znlj3v0fy9a9M3Jr1jbJ7txeM58o2g/13KZL3QfI1zfstS6SlxftNK3fu9Mq4xg7pyPu++HUoFn/bxRnZpt7Lr8Wye/Cq7Ha/29Z1RQJ+mRUox/SxHt4e+rf5E3Pdw6w7PhCZF6TIe4ZisK2rotC5Gfd3LpNTDgQxAxvmnx96XQoNdgtTxvQYWKogpiAq8sayDMxNVlxBZwrdpJ9QsLArYDGfPeZCZ8IpsK/MKMFznfmBOxg1gr/7FmuJc7NdoLz3tsU92ieqwoxyGtoO+TecZhCH9Lp1bu0P67E7DgW8iz/Ik+0YNPs895Acf5Oit5+Zrl+wWNcv8J35Tb5z31nonA2ugxmdP1ir5fbnXbLTOpDZHelu8D6j4MsL/TtyIYE5Too/1qbHOW76/ok+XOcGGpnrrOB1fb7mv/Dw+qAOvlF1m/Jbbp69/WM7Lk0Ng+jouXGUsq1N7YkxdLmib8CSbopHBzN6xOu0zJ2rfoulOVXiddFSjhbo/+7vH70qC9XnzZ3rlaX6vwu3ny3Q/6K9/7vsOe9h09aPpbfvCr/I+kdSx3qaCS8D/eNjHM6tMm/arb/Rx5SJB91zRz30zFXNXlUtbNv3xa1DiFz5WEh3m/gvye6fgaVqm/fl3R/sa1ahZ2QfmtqVCxZ5td6jAx75OGVLwxxZujEjp695o1mXXqYXuH+KYG9yH7ifUvdZ1519pI6n0L2V+Z6Y+4JsnzSrv488vJnvs/dtaxnAxJwX1uPewXQpkPACLDvyN9mh+3ote0yAIo4/ymzPaVFmFyhPy8GtheqG4rk+jcO1UfX+c37TQTeIqnaOA3XcrZSDFyzrU+Y6xt8bTxW5a0VwX5jR+cO7U51Hwd8bCM7WqbLBvi2Sr3/l4N0jugP7mRdJebVR7b9LkbwPkq9p3m9xfudB75pZ7Zyz6nheefCC5fvi16FYvO+zPe/qVguRbWrK6AWLvEogwcoQRWG7vzCj84eaA+jfFthIuVB9nayLzMtR5D1DMdjWVVHo3Iz7O5eJKwe858/odjT72PvO8EfobTVu5w2MN5MTopobssgozG7V5lChEKdp4rRcXrfOz9cd/bkEzEFs759PnXPq+8fhpM/D1AhIPgH9t0v21/nTCHPRMIXTqFzv3i1HAxlUuPmZuuHf4tUCCNScSMLbV2mprlFNKkrT68zZVnAWi7kAFC4wiyG+8HS4e0I21zfJvs9+dP6RfzOa6zvM03qRHrebUVNjJCVz58/3mkerfoYXN8n7V/X57egNipI7X/Ivot7v8G/yzQ1Q4G8NplaLtZaKf5zF35wk3ig5D0yrV7XKh85x6Z1bz4jpHz+I2T+FboDMcrmw1RwnxR9r5jPGv4wpBbNdLWXNHec3uX2aeVbW78l/4eEGDmoEXDPD+7wFlsTSvLjKK3P1MZt2rhdml4xevyaxA1mbB/HY2k45TI3aamcjl3aFCKBrY9mDhBzZkb7c9vpZkxwb0TMM5ty07vBoOZpEVkb+tsMLeOauk55bzve6n9unR8VOy6Idf8sfFCyR5P69/XOrgMU8OEx4Geifi1N30574G836OSvnvnBwP8dRhZa270t6ANDb653+/6cnRIj720A5HNqGWWfd9HR/AJEQxW3bxIF9Jhu9r2zHindPGm3KHBxUIlKz12HweC40jeLv95It5rzPfX5+C6rA6PrKvO5Okvs2NeVk9J7dHJ/Ra7XCD26DTUdNAG2tSZNrDlxo1GgzsKq9rCwCyuyZVWYXKE9LJntOWqtz9yGmWX/wHsPff85vGtBBlKtqzmtbn8R1HJTM6lXScuQr/e8cifelU4I5bmPKxBObpb5pn3i7U10/Ir/X3H/FbosCx0s5uDXFTbmRa9YfbiEQ/7uS90HyNc37Lc7vHNBlm6sqR23fl7xtBzOrZVXLEck/SnL435f353flWv8JOdEfqXVuylxlpLKSOi6PZ07LtaQXJUn3F/q4blUPTua3hTaSKYP095exfUsibl0LlR+Jv1H/rnEvBz6TNnNtibmuRqf7LTmsff46R35MKAuTx+SEqOagjPRv5xesE6D1wpyA1z9f/EltCt0xn/R5mEI2aZATr3ZXKu2c8CXdVE0F5ve0SN/Ip5JxB6eJFi65G/x0TY13451eJh1+f1TJxF9UCuPtR1vBWSzmAlDe90eJv7nI6qaD5iHHdjPqXLJ00+vYY77QxaQEgufrkt1fyKeveX2vVS9Z4jWnrna2qz6G/Y7WIxcF86YyFzZmnWX1w15oG+Q6jbcHXuY4iz/X42+U7kif23+Xd8753XDkvbE1D8+FHvL0+RmqxWWOk+KPNbN9E8sY80LKGiyPB1lnu3nbPa+WqWpe2fmMDtDTUrOhO2/QD/cteLCcco+/mCajtj6SRwdlt+qPNfBC5cfPX5dFajn90iVI1iljOkz/rX7Hj1m51bdNNu4Jrr/z0NqnX9bk3ViOyuDhV2Xr1owU0/2tHyxFb3giZK9mvIGt3O2lvrdBDgwGNpg5N607PFeOJh4/qtuJtjp3n6RrtjhlrvrF+thzP9cpR/bUu/Mr67bFjABqwS838kMjhXduFW4NUMzLzAkvA/1zcepu2uN/oyKwv/ya+brWne37Eh4AvO+J1iYNEPu3gf7lAk2Y/W0b26VJcdvWux6Ueg0yL5jHUAOxbEZl1Jwqfn+Pzrqs+ouEczVzjbCXx2a/L3/dfn7kW1qfqP6LxrwWPE5592mnPKNHAE7XbJDuyLlvrtHhZrDqpfc6757MMVzD1VznVFlsunXxuHOxQw/i97h0Wvt7q5bmYPVdZ5v2balx1121bPDm3JGLnfVSvWy3BItJ9VtMP6/+caDKvcxW2frq0YItl1wos2dWmV2gPC0Vb30D4bL/0ijY1FnvP/WbAq2g3ODdtj4J62gGn7OVW/H3pRrn+Lg1XOQ+HxcS7qWzukm4HoXeu35Ef28wOLPvr+TrX6no/p3T68S/LTdBbug6Ff+7kvdB8jXN+y3qdwZaabjZhu37EratGVOgQJlUFM7Fyhwxfn+2zneu+kvkLZAJWJO+M+H+wrxc816i6d8W3UjBUL2M7VsScetaqPxI+I3+7xr3ciD3uxu6g+Vz7qVS3jGiWwjlTdfXSu9ZzDHUnzdMJpMUotpvok2KXljdgXIJ/QsW0yQlh7kRjjnhHEyhO+aTPg99YsUOoOJQ5A3g9EB3sp1KS1rfjM5tyOSFH6PX35MGfYOvXPr2V/5FoBDeRaxalr2U369sIVe7hVVxDyh2TEEYf6wUT9a53ui+UAJ9jGV/uCXnM3q0XXNc6PAsvzBNuEgrTB9m0b7NysG5ocq4gZXzXSpgC77xjNy4+806nOnrutWgEKMyfD4jDepNXDTE8j83LcsyzueODsv5Dl1b2XnIsDwPOJjjLK6p/aj0uv3fOp8R6Idv9J9fSe8W3depOZ/84CIQDKp10Psg+sCYh+k/LTQisjlOij/WzI1mYhljmt1OxOB1mtyDZKXUNe2ULufBqmtnkyytVvvImbZtp2yrq3TXVQ360XLCbH/vZtptYqWnuDU+Yss28zIlLYvWZ+RIlx7QK10jW8IHiP9QmUpXy9Im71xuXrVIj3zt7Lct5kHcIXA81axodpdtMgO9OA/FB6M702/KrG+UClL4pZYaGGWd+9bZOaZ3n3eOOS8wcH9b34jzixzMzZd1MJFCYYoKSTKyRg++MrfhQCB40MeefyAF+/xT+69bBhOrOJkaYpVSqcro9DLZHU419PVwhpSB/osHPTjQGPBrxEX2i98vb0w56/d5ZetLUq+fG1j5Zaq3bW3f508L1u4b/ad81W32cfwL2TvdDfrzLMv4Nc29Zsyj17tzx7Aql/ViQUadBybvASKupqpC75+kexwrZlAieyuB8WFU/vnNDRk4e0KOZF6VrU31UlvjlRXedSVSozMvTNYtNGJ+W1FleghzLBd53QhckyvrmmRnl1N2dO30yzsVwu3c5gV27rnfciJ3/PkPu6acbJZV851y3Skj23R/f+Eap2dlizq+apfJMue4SNeskGa3HNYtU/LKbY/sQKc87l9PVNltriWq3Ar2c6rKKR3gOteVjRk1GFeXtK3wys70op1+DddcH77FBuyU2TOqzB7H+9bR63+RRlWOhAK83AuadMP7+rlK31O63ZaYlle6VY2/PoHtZ1vH7A9y63yn7hbC8vLYH9zU0XoPp8sb55jboPrm1VMnlKyzTnn30ln54dZ5XQkmd1/kXXssx1CB0Crx+lcS6hx6zf2ucH/5ueeBuW2f5U0LH2O5brqsfXQXuF/wfot3/TQ1CL11sX2f7TnF27ad9d49dEl986suM24MyNkTRyTzqnNfW18rNW5Zqo/BSGuxcE1rB+e5TN2nJN3njvb+xvv76P1Frx7E1X9hqH9b3sXNDGJom+cwDe7HrPdQPvp3jXs54BwhbisD5/h47by470lGr+eeR+c66xK5JzNZR3R3mZdQ6pq/desab7+Enj9hspi0ENX01RN/o51EiTeWpWLeCCU8fExUiGq2i72/MY+xbbvJJReeOaYXyZbIqKqj109LZ5NpDu7cvC9dqm8UVYGwUQ6cHw4tb2MqQ9SsU2B6Nwv2mifFk7uJTDTUpNMYXn/ztit6M+q/bQ061gM4e0v62lbJ/EAArqx9rV++7D8butG/c/FAbmR0x3R1jTc6uu1hwLm5PLxxqQ7FnGNhzmJZ1dabV9PRJW97KIPbRD+QFNC/eXFuAJdVL5Kmbdtk1SIzqrLqLiJhHXxytWTCTdbNOozvwFKF+m4eL0av90rbqsVe9xfpaqmprZemVw/Ieb+GxKhc790m9XPqczcT+mVP7sHbq4WUGEzq42mRuhF0vmfRqrbYmjehdVLbtnKOLHaW7x7UD7hB1Oduq/eXrXTWs2lnzL68fVw2qvDAWa7YgW+85oD2PluDfest2nFOh7t35KJ+MaAedJ/bc1X+5T94JBktq5wb8Gu9ss2Ewuphy31JEUQfe5EDSW0/P/x21mG+s+26Pv4q0hQod6OnamaPmEDd+Z41mU/95qXj80A+8WWgCbFCllkbJv+z9O+3lEe5TW8vi3Lzw9tgSabPu4Gv7ZAey/dt+O/gv2O0dWthLTOV4e2o+p9s88vsSplT71yTP7WcX7Gf5xgtwPRLpurWc/mfk4SpBTIutZcc7l6T/iMZedW5D1APn7VzzLkQ0SlXahevktf/elF61nkhQnrRDjm8W48sHnypZkLvmPu3CQ9RFepBzClDF7u/x+vmqL7p1dC9lHvuO/u1PnR+ZGXkb21OGa7LPucaaK53XlAQ6dLFlFfOb71zqy9XBjnbq171A5twobzzZbf7/f5x5WzftpgR98PlvPo99bIxczpUdmcH3vaD2Fw4kQxltvqM6V9mj+d9a16ZrT8nvyxvkVeD39vSp0NW55mwJ7+s++8N0b+32Sy53kvs1wHP8Hbxa3U7x+Kyjov6WJwgijqevXu6vP0S2icmOIseX4Wuf6URXQdz7OSt25IN8t/BfyvdL7Ucv4HrS8H7hdAx3SJ9Ooxr7OnJ/53/vaGobRvXxY3qWsZ9sbe1Ser9rujyrZxT69wHvy5/vZh7CbRox2HZrbtKCb4ANf2l2rpjUVjPvaihZu3GyH438yM7uuD2LYH8zyrmfsxefgXLoNA2GPdywDw35e493GfdbbbnYt2KwxKOei2ncxmEd70ea9kO5TBpIarfH0RZJ0wZN5ZR/l+/vPNqRo5E3x47N9Xrdaf1SbW7zIlVauF/+3PzXWdl4EYwNPlKPu7aJnX6xi2+ubBuXhtsujCNMaPAVta1yd9MoaDeYp3OyEZzE+mYrlkjGf1w5j64BedVL5WmnV3y8VfhAYAMXuFZXoHh7ccijqN//VW2OTf6qqZFLoRt0vvLMTpq633KYKcXIP5syTJZlC7ct9k9x5DzoO8+sERrKCXdNCcbX8YUrjEPZeLWyirh+P32fWlw9nu4NsSoDB4wo0kHH8YNukatqYltbjR/cyRwXTCa1he5sur2eacM9R+o01KzJmN/IWGOPeuB5N3EmQDCs0a2f/wvZ16gJligtvidi+aNuqMKTJrMy6jiB/crtY9yuHfwrtelD+RmHvjG7YVRqOWEdyyrsLR5q6pt792f+eHUnYt+TSG/NUSg1qdqXaPOPdO8MW4dzYOeetC19dGeb41+kTiGe90JwtTeKanm1ATi1cYp4biizHb+TZk9E8hePei12lLHzJa+EvvGhXsBc/0zemFps2x1no1PnB2QG4EBcnPnuzpevFZZuRZlc6XBfZliujHj+WFGoK81tvEkvBrQ1dLcOyJZv7uhsdfah9KZxBDVvAmOjohYDOMQogYGxrFaYFCjckNUU3Ms3lyhZ0WPZl9yLY4pw7np/NR7+/2vz/ZJU6AmorJyvqqBcM0ysqhqpnEgcMOpTT8n7/29/ECqGO37NOF4Sdubrd2X3DklW9zmaZUyZ7VloKF7mh/lrxu94zXcr5zCHLMLZHUoiI/3pWVeE5j4MkY3bx2vmlngYfphzetXMAndh6Q/IuyPcto0YVI3rQcG/RvcMFkZHdVfEvO23iP/mmduilUTXWvtW5+kB3JN9ge5pl5s1dfIc25NhUAfS7Zroa7tFq2BXpz22l9wH5B1yiwVBpTR/Uh5/agm8a0M9J2QswM3Ert7ujuwRwcYqfx+mP3rXfD4jg/y7qUQNWlQqcnGDABV2sjTlNnFS5k91eS6l0jJ/DepsnHf8e2A9Lkv9/5heV423JWBPboLjVR+zWV/0ObguU0FoBmAGSskpisjnQsF92uub3GYTCY1RBXdbD40kEhRjEeImpWB9+zhxdadhfobKj9ElcH37d+pfDUjHybeWJmmwjP0zVF2QDrU22/Vj6Fq7hUzgm0Y1fTptGS2qSa+lbLSrd53Wz63vCkfLz+3Pt15Ix927QzvryMnPk4e2XDGYM6pIi35wL9PUH0Q1e0Qf2wCHxOiFl9mmQfu2E2t+96xvZmE8rh9yuuHNTfARwmYN8UmQFe1kmsaJFNsB+/OQ/E/VA2mEobWHP2hmDK0iAfyPHST0Mp6yUT60gvjlM//cNb5q4+tZandz0sO0CaLUNOtQvLyomTu9DRKOlXtlGmlBm+6X7KpeOC7c052LKqURVv65JbtZNPhlOmC5LndA9am/IqCZXoe43GvOxGYQaUiTfwnnbsycHCj2yKosj4TGYCqCCizi3S6ltn3132rqpHa1HQvV04w98nFOW6tEu4h7pzbIYsqF8mWPnsful73KN74Aenq52T3wPStYc79mOZOjzQ6+8s+qLJH9la/m5MsXrxKth3IddsCk8vkhqgOtw82yJylb8pnqiVK0eibgED19clm9J/q+wPNvSaFG3L0pfkyf8eFIm7CpifZH/6Z8BYN4F5FDVhSWpllBtqLLWNuf+4+4NhDfyiHb4++nNffXvGot8VO+fzS0TEOljDe6GOv5IvVqPxAYQ3jxr/kszeXypyGyOAWRaFfnE5VYZfNzth7ronBDPIV7N9tavjsT03S1j1Y5kMjZTYA3FtknesV3Dv867M3ZemchkgXcTAdmfQQFQAAAAAAZgDjPcgXAAAAwAyGEBUAAAAAAAAAAAAgAUJUAAAAAAAAAAAAgAQIUQEAAAAAAAAAAAASIEQFAAAAAAAAAAAASIAQFQAAAAAAAAAAACABQlQAAAAAAAAAAACABAhRAQAAAAAAAAAAABIgRAUAAAAAAAAAAABIgBAVAAAAAAAAAAAAIAFCVAAAAAAAAAAAAIAECFEBAAAAAAAAAAAAEiBEBQAAAAAAAAAAAEiAEBUAAAAAAAAAAAAgATdERURERERERERERES7bog6MjKCiIiIiIiIiIiIiBYJURERERERERERERETJERFRERERERERERETJAQFRERERERERERETFBQlRERERERERERETEBAlRERERERERERERERMkREVERERERERERERMkBAVERERERERERERMUFCVERERERERERERMQECVEREREREREREREREyRERUREREREREREREyQEBURERERERERERExQUJURERERERERERExARndoh6+bC8smGDbNjwjpy2zUdEREREREREREQcozM7RD3fLo+nUpJKrZVDtvmJ3pSrX3whX4yTXw4NW74DERERERERERERZ7rTJEQdksN/WC2buy7KsHV+jGMKUQ/JWvdvx8fH28/nPvvKCel88UXZeT74fVjIob3Pu9uyYv1h63xERERERERERMSpcFqEqMMnW6U2GkQW45hC1NPyjtsVQJLPuuuVStXKs9b5OV85fDn32UOHZG1VSiqe3ytXQt95f3nlRKe8+GSNPDQrJbMeWiir208kbo+TrTVuiPr0rsC2dNW1hq/ejExHRERERERERESceKdBiDok+xoqJFW1Vg4N2eYnOKYQtRhNbdXSP//M9lo3fN1+xj7/XvfKobUyO1Uh81Zul7+cPSv716rtUSW/PRrX7cFl2fW02tY10noyMk/v56pNx8LTERERERERERERJ8GpD1F1QFbTetI+33VY+rv/ImejNRHjQtSbA3LydIldA1gtP0QdGdorz6vg77dHx2E9ZphD+6ShwtluSzvlkpmm91V8bePDsl79TapRuobD8y7vetqZnpLn9w6FpiMiIiIiIiIiIk6GUx6iFlVj04Ryqadl1+XAdFuI+uWfZfUsZ1qFs+ylwLJlOYYQdWRI9j6v1qNB9pVaw3aGO9zVmBd6Du1rkIpUhaw9FFMT1ezLug75JDRvWLoa1T6w1FBFREREREREREScBCc0RL058JFcTAwQT0prTUpSNa1y0jrf0ww4FKrZqLTWRB2WY5tmu8uPvRboWEJUs94V0rDv/qpBeb79cXf7rz3k/Xv4cpesne1sx8fbpD9Sy9Rogtdck/1hOdxSI/OqKtzpIas2yTF3mStyon21LFy4Wt5hEC9ERERERERERJwgxz9EHR6Sj/7SLi/WVUlF6nFpTwq3Lu+Sp1OFRmO/JJ1LVXhmCSPjmvNfcj7Xrbla4PsLOrYQ1azf/daXpwm9n997RS73bpcnVc3g2Q2y92Jcf6i5QaVytVed4+hIl3S98pz8VO2Dp7ZJV5fzb+WRj2RILXNsk1S5+ycldR2fhD4PERERERERERFxvBy3EPXmwEnJbK6XR1RglkrJrEfqZXPmtFyOqXnoemht4QDszHZvhHxbs/i4EHVkWI7+tsr97IqGfV7g5qvDORPIJbpNnnI//ynZZp0f9Yh8FFpH3c/n4+1yPrQO97gnW6VGbftZs9wm/PNWtsuJK5blfM2gUgulrT88z/SHau0z99I7skKN/P9IsxxK/HxERERERERERMTyHWOIelMGTmZk81PzpEKFjRVVUvdiu/zlo6GimtFHm33nmwtDrU3zY0NUx0udstSdF+1v9by0P66mT4TRmq/mu8qsyToTHb4sve0rZLa7PR6Wxr0X5GZ0mUsH5eUNG2RjZ5987U7TYXPFejkcWfbweq85f2NXfC1WRERERERERETEibTMEHVITu56Uerc/iorpKruRWk/cFIGbtqWjffYJhWQ5tc+9PUHlIoZeCopRA3WRn1+r1zxp1+Ww69skA0bivFZrxas8/3PWudHfUUOBwe+ctbBGxQpMiDWveqVo7Jpvj4mqma5235p56XIcqbP2lppPamD0U86pE5t57xBpT6Rjjq1/eqk45PgdERERERERERExMmzzBA1V5tz9pq35OTF4mqeRj20Vn1GfL+lpqZq3oBSxsQQ1dF0BRAM7EpyjH2iOhb6jfeMQ4dlvRo8KjVbGvZelOEre+V5FYBXOdsu2MWB6Sd27SG/m4X8QaW0w13SqLa/P5AUIiIiIiIiIiLi5Ft2c357H6il1UZNDBiHj8pvq9T8Kvnt0ZgAtFCIOjIk+xq85uDh2qjFSoharGe217rb+fG2fh2oD0t/mxeCz157SG/789JR5+yPiudlb6AP0/xBpbS6b9WUs+/C/doiIiIiIiIiIiJOnmMfWCo0Gn+qpH5Rvf4u7QHjpc6lbrCWqt0uZyLzfAuGqCMyfPS3egT3mC4BEh2vEPVeb45+Ulpr1O98XvYGa50O90u7Ck1TFVLXfkbOtNc5x0iVNHZdCfztkOx9Xv1tfrcOZpT/hW39oemIiIiIiIiIiIiT6dhD1IB5tVMfWiPvJvQFGjuw1NAhWevWQq2Qhn2R2olBiwhRR0YuSedSb33yR+ov5FhD1PtlYCmznRqlazg8b7i/Xercfm2VFTJvvamVajwmm9S+tgwq5fWZy6BSiIiIiIiIiIg4tY5riOrr1059WjoSmrGbvjCf3nU5MD3XDDxV2yonI6FcyKJC1BEZ2tfg1ZItuTbqWENUHRAubJN+6/x7RRMWR2uZOt68IHsbH/b2Z2qWPLm9Vy4H96kZVOrpXXI5+HeOXi1ee4g6fLlb2jdskM3vmu4DEBERERERERERJ8aJCVGL1QwyFBpQaFgudm+XlfNmyfN7I4Fc1CJD1JHhY/KH+hel84MBuWmbH+sYQ9TLu+Rp5+8r1h6654O+K4fWymy1rSrmyVPN7fJu17vS3qxrJTvTVm7e7OxT3T/tvKek/cMb3t86f+cGrLOflG2Hg2F6rkuHinkrZfu7zue92CzvXFLzLsuup9V+UT4tuxJqOyMiIiIiIiIiIo7VqQ1RTU3Nx9vlfHTe8HDh4LHYELVsxxaiDh9a69aADde0vVcdlsu9nfLik/OkSjXfn/WQ1Cysl8aX98tHQ7om6fBl6W1fLfMfWZ8bsX/osLQ8MsvZxhXy5M5PAp+nlr8oXc1PyrwqNRhVlcxzPu+13q+decNy8pU673vu+f5mERERERERERFxqp3iEHVYjv5W9Xu5VDrdGoYlOq1D1DH+NizgkOxrqEgeeAwREREREREREXEcnOIQ1fHDzW4z8Mfbz9vnG4c+kiNdXdLVdVhOfvKFfHG2R15vmC1uk+6qTXLM9jel+Hmf89mBz//kpBxofdob2b+czx8+JGsryhnMCgs7LJe7VPcBlj5YERERERERERERx9mpD1HN6PmFBpHya4XmO3vTsbH3OdrfJgstn13u51/a9bRUpKrkt0cZWX5cHTopu15cJLPUIFXtZ0rs4xYREREREREREbF0p0GIOiJDh9ZKVaqiwEBSn8jbz9VITU3AhfXS3BkZ7b1sT8s7GzbIBuXqJ53Pf1JWO///cuZ06Z8/fFJaa1P2vl5xjH4o7as3S+b0ZUblR0RERERERETESXFahKiqNuquFQ9J3csfyg3r/BnmJ+/KmkcekU3HqIWKiIiIiIiIiIg4050mISoiIiIiIiIiIiLi9JQQFRERERERERERETFBQlRERERERERERETEBAlRERERERERERERERMkREVERERERERERERMkBAVERERERERERERMUFCVERERERERERERMQECVEREREREREREREREyRERUREREREREREREyQEBURERERERERERExQUJURERERERERERExATdEBURERERERERERER7boh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" alt="" width="680">
htmlentities — 将字符转换为 HTML 转义字符,本函数各方面都和 htmlspecialchars() 一样, 除了 htmlentities() 会转换所有具有 HTML 实体的字符。
相应地,JavaScript的编码方式可以使用JavaScriptEncode
JavaScriptEncode与HtmlEncode的编码方式不同,它需要使用反斜杠"\"对特殊字符进行转义。
在对抗XSS时,还要求输出的变量必须在引号内部,以避免造成安全问题。比较下面两种写法:
var x = escapeJavascript($evil);
var y = '"'+escapeJavascript($evil)+'"';
如果escapeJavascript()函数只转义了几个危险字符,比如 ' " < > \ & # 等,那么上面的两行代码输出后可能会变成:
var x = 1;alert(2);
var y = "1;alert(2)";
第一行执行了额外的代码了;第二行则是安全的。对于后者,攻击者即使想要逃逸出引号的范围,也会遇到困难:
var y = "\";alert(1);\/\/";
所以要求JavaScript的变量输出一定要在引号内。
可是很多开发者没有这个习惯怎么办?这就只能使用一个更加严格的JavaScriptEncode函数来保证安全——除了数字、字母外的所有字符,都使用十六进制“\xHH”的方式进行编码。
在本例中:
var x = 1;alert(2);
变成了:
var x = 1\x3balert\x282\x29;
如此代码可以保证是安全的。
此外,XSS是很复杂的问题,需要"在正确的地方使用正确的编码方式"。 举个例子:
<body>
<a href=# onclick="alert('$var');" >test</a>
</body>
开发者希望看到的结果是,用户点击链接后,弹出变量"$var"的内容。可是如果用户输入:
$var = htmlencode("');alert('2");
对变量"$var"进行htmlencode后,渲染的结果是:
<body>
<a href=# onclick="alert('');alert('2');">test</a>
</body>
对于浏览器来说,htmlparser会优先于JavaScript Parser执行,所以解析过程是,被HtmlEncode的字符先被解码,然后执行JavaScript事件。
因此,经过htmlparser解析后相当于:
<body>
<a href=# onclick="alert('');alert('2');">test</a>
</body>
成功在onclick事件中注入了XSS代码。
第一次弹框
aaarticlea/png;base64,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" alt="" width="287">
第二次弹框
aaarticlea/png;base64,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" alt="" width="299">
导致XSS攻击发送的原因,是由于没有分清楚输出变量的语境。
4、正确地防御XSS
XSS的本质还是一种"HTML注入",用户的数据被当成了HTML代码一部分来执行,从而混淆了原本的语义,产生了新的语义。
下面将用变量"$var"表示用户数据,它将被填充入HTML代码中。可能存在以下场景。
(1)、在HTML标签中输出
<div>$var</div>
<a href=# >$var</a>
所有在标签中输出的变量,如果未做任何处理,都能导致直接产生XSS。
在这种场景下,XSS的利用方式一般是构造一个<script>标签,或者是任何能够产生脚本执行的方式。比如:
<div><script>alert(/xss/)</script></div>
或者
<a href=# ><img src=# onerror=alert(1) /></a>
防御方法是对变量使用HtmlEncode
(2)、在HTML属性中输出
<div id="abc" name="$var" ></div>
与在HTML标签中输出类似,可能的攻击方式是:
<div id="abc" name=""><script>alert(/xss/)</script><""></div>
防御方法也是采用HtmlEncode
在OWASP ESAPI中推荐了一种更严格的HtmlEncode——除了字母、数字外,其他所有的特殊字符都被编码成HTMLEntities
String safe = ESAPI.encoder().encodeForHTMLAttribute(request.getParameter("input"));
这种严格的编码方式,可以保证不会出现任何安全问题。
(3)、在<script>标签中输出
在<script>标签中输出时,首先应该确保输出的变量在引号中:
<script>
var x = "$var";
</script>
攻击者需要先闭合引号才能实施XSS攻击:
<script>
var x= "";alert(/xss/);//";
</script>
防御时使用JavascriptEncode
(4)、在事件中输出
在事件中输出和在<script>标签中输出类似:
<a href=# onclick="funcA('$var')" >test</a>
可能的攻击方法:
<a href=# onclick="funcA('');alert(/xss/);//')" >test</a>
在防御时需要使用JavascriptEncode
(5)、在CSS中输出
在CSS和style、style attribute中形成XSS的方式非常多元化,参考下面几个XSS的例子:
<STYLE>@import'http://ha.ckers.org/xss.css';</STYLE>
<STYLE>BODY{-moz-binding:url("http://ha.ckers.org/xssmoz.xml#xss")}</STYLE>
<XSS STYLE="behavior: url(xss.htc);">
<STYLE>li {list-style-image: url("javascript:alert('xss')");}>/STYLE><UL><LI>XSS
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
<DIV STYLE="width: expression(alert('XSS'));">
所以,一般来说,尽可能禁止用户可控制的变量在"<style>标签"、“HTML标签的style属性”以及“CSS文件”中输出。如果一定有这样的需要,则推荐使用OWASP ESAPI中的encodeForCSS()函数
String safe = ESAPI.encoder().encodeForCSS(request.getParameter("input"));
其实现原理类似于ESAPI.encoder().encoderForJavaScript()函数,除了字母、数字外的所有字符都被编码成十六进制形式"\uHH"
(6)、在地址中输出
一般来说,在URL的path(路径)或者search(参数)中输出,使用URLEncode即可。
但是还有一种情况,就是整个URL能够被用户完全控制。这时URL的protocal和Host部分是不能够使用URLEncode的,否则会改变URL的语义。
一个URL的组成如下:
[protocal][host][path][search][hash]
例如:
https://www.evil.com/a/b/c/test?abc=123#ssss
[protocal] = "https://"
[host] = "www.evil.com"
[path] = "/a/b/c/test"
[search] = "?abc=123"
[hash] = "#ssss"
在protocal与host中,如果使用严格的URLEncode函数,则会把"://"、"."等都编码掉。
对于如下的输出方式:
<a href="$var" >test</a>
攻击者可能会构造伪协议实施攻击:
<a href="javascript:alert(1);" >test</a>
除了"javascript"作为伪协议可以执行代码外,还有"vbscript"、“dataURI”等伪协议可能导致脚本执行。
“dataURI”这个伪协议是Mozilla所支持的,能够将一段代码写在RUL里。如下例:
<a href="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTs8L3NjcmlwdD4=">test</a>
这段代码的意思是,以test/html的格式加载编码为base64的数据,加载完成后实际上的:
<script>alert(1)</script>
点击<a>标签的链接,将导致执行脚本。
由此可见,如果用户能够完全控制URL,则可以执行脚本的方式有很多。如果解决这种情况呢?
一般来说,如果变量是整个URL,则应该先检查变量是否以"http"开头(如果不是则自动添加),以保证不会出现伪协议类的XSS攻击。
<a href="$var" >test</a>
在此之后,再对变量进行URLEncode,即可保证不会再有此类的XSS发生了。
5、处理富文本
有些时候,网站需要允许用户提交一些自定义的HTML代码,称之为“富文本”。
过滤富文本时,“事件”应该被严格禁止,因为“富文本”的展示要求里不应该包含“事件”这种动态效果。而一些危险的标签,比如<iframe>、<script>、<base>、<form>等,也是应该严格禁止的。
在标签的选择上,应该使用白名单,避免使用黑名单。
6、防御DOM Based XSS
DOM Based XSS是从JavaScript中输出数据到HTML页面里。而前文提到的方法都是针对“从服务器应用直接输出到HTML页面”的XSS漏洞,因此并不适用于DOM Based XSS。
例如:
<script>
var x="$var";
document.write("<a href='"+x+"'>test</a>");
</script>
变量"$var"输出在<script>标签里,可是最后又被输出到HTML页面中。
假设为了保护"$var"直接在<script>标签中产生XSS,服务器端对其进行了javascriptEscape。可是,$var在document.write时,仍然能够产生XSS,如下所示:
<script>
var x="\x20\x27onclick\x3dalert\x281\x29\x3b\x2f\x2f\x27";
document.write("<a href='"+x+"'>test</a>");
</script>
页面渲染效果之后的实际结果如下:
aaarticlea/png;base64,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" alt="" width="734">
XSS攻击成功:
aaarticlea/png;base64,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" alt="" width="220">
其原因在于,第一次执行javascriptEscape之后,只保护了
var x="$var";
但是当document.write输出数据到HTML页面时,浏览器重新渲染了页面。在<script>标签执行时,已经对变量x进行了解密,其后document.write再运行时,其参数就变成了:
<a href='_' onclick="alert(1);//'' ">test</a>
xss因此而产生。
那是不是因为对"$var"用错了编码函数呢?如果改成HtmlEncode会怎么样?继续看下面的这个例子:
<script>
var x="1");alert(2);//"";
document.write("<a href=# onclick='alert(\""+x+"\")'>test</a>");
</script>
服务器把变量HtmlEncode后再输出到<script>中,然后变量x作为onclick事件的一个函数参数被document.write到了HTML页面里
aaarticlea/png;base64,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" alt="" width="831">
onclick事件执行了两次"alert",第二次是被XSS注入的。
aaarticlea/png;base64,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" alt="" width="270">
那么正确的防御方法是什么呢?
首先,在"$var"输出到<script>时,应该执行一次javascriptEncode;其次,在document.write输出到HTML页面时,要分具体情况看待:如果输出到事件或者脚本中,则要再做一次javascriptEncode;如果是输出到HTML内容或属性,则要做一次HtmlEncode
也就是说,从JavaScript输出到HTML页面,也相当于一次XSS输出的过程,需要分语境使用不同的编码函数。
会触发DOM Based XSS的地方很多,以下几个地方是JavaScript输出到HTML页面的必经之路:
- document.write()
- document.writeIn()
- xxx.innerHTML=
- xxx.outerHTML=
- innerHTML.replace
- document.attachEvent()
- window.attachEvent()
- document.location.replace()
- document.location.assign()
...........
除了服务器端直接输出变量到JavaScript外,还有以下几个地方可能会成为DOM Based XSS的输出点:
- 页面中所有的inputs框
- window.location(href、hash等)
- window.name
- document.referer
- document.cookie
- localstorage
- XMLHttpRequest返回的数据