站长的网站安全保护

2011年5月20日 | 分类: 搭建博客 | 标签:

发表者:Gary Illyes,Webmaster趋势分析师(Trends Analyst)
原文: Website Security for Webmasters

用户们都被教育通过安装复杂的杀毒软件来保护自己免受恶意程序的侵扰,但是通常他们还可能将私人信息委托给您这样的网站,这时保护他们的数据就变得十分重要。而保护您自己的数据也非常关键;如果您有一个在线商店,您可不希望它遭到洗劫。

多年来,公司和网站站长们认识到——通常是在经过艰难的体验后——网络应用程序安全并非儿戏;我们曾见证过由于SQL注入攻击而使用户密码泄漏、通过跨站脚本XSS使cookie失窃,以及由于输入验证的疏忽而使网站被黑客控制。

现在我们将向您展示一些例证,说明如何充分利用网络应用程序从而学到一些方法;为此我们将使用Gruyere,这是一款我们用来进行内部安全训练的、专门设置的应用程序。请不要在未经允许的情况下探测他人的网站寻求漏洞,因为这可能被认为是黑客攻击;但是欢迎——不,是鼓励您——在Gruyere上进行相应的测试。

客户状态控制 – 如果我修改URL将会发生什么?

假设您有一个图片主机站点并且您使用PHP script来显示用户上传的图片:

http://www.example.com/showimage.php?imgloc=/garyillyes/kitten.jpg

如果我将URL修改成这样并且userpasswords.txt是一个实际的文件,那么该应用程序将会怎么做?

http://www.example.com/showimage.php?imgloc=/../../userpasswords.txt

我会取得userpasswords.txt的内容吗?

客户状态控制的另一个例证是当表单域无效时。例如,假设您有这样的表单:

看起来提交人的用户名存储在一个隐藏的输入域。这样就太好了!这是否意味着如果将那个域的值修改为另一个用户名,我就能作为该用户提交表单了呢?这种情况很可能会发生;用户输入显然没有获得证明,例如一个能够在服务器上核实的令牌。
请想象这样一种情况,如果那份表单是您购物车的一部分,而我将一件1000美元的商品价格修改成了1美元,之后提交订单。

保护您的应用程序免受此类攻击的侵扰并非易事;请参看Gruyere的第三部分,学习几条如何保护您应用程序的小技巧。

跨站脚本(XSS)- 用户输入无法被信任

一个简单、无害的URL:
http://google-gruyere.appspot.com/611788451095/%3Cscript%3Ealert(‘0wn3d’)%3C/script%3E
但它真的是无害的吗?如果我将百分比编码字符解码,我将得到:
<script>alert(‘0wn3d’)</script>

与很多带有自定义错误页面的 网站一样,Gruyere专门包含了HTML页面中的路径组件。这可以引起安全错误,例如XSS,因为它将用户输入直接引入到了网络应用程序的已渲染 HTML页面。您可能会说,“这只是个警告框,又能怎么样?”问题是,如果我能引入一个警告框,我就很可能也能引入其他东西,并且可能盗取能够用来以您的 身份登入您网站的cookie。

另一例证是当储存的用户输入未经审查时。假设我在您的博客上写下一条评论;评论很简单:

<a href=”javascript:alert(‘0wn3d’)”>Click here to see a kitten</a>

如果其他用户点击我的无害链接,我就有了他们的cookie:

Gruyere的第二部分,您可以学习如何在您自己的网络应用程序中寻找XSS漏洞以及如何修复它们;或者,如果您是一位高级开发者,那就请参看我们在在线安全博客上发表的关于模板系统中的自动转义功能博文。

跨站伪造请求(XSRF)- 我是否应该信任来自evil.com的请求?

哎呀,一个断开的图片。这不会构成危险——毕竟它断开了——这意味着该图片的URL返回了一个404或仅仅是格式错误。那么所有情况下都如此吗?

不,绝非如此!您可以指定任何URL作为图片源,不论其内容类型。它可以是一个HTML页面、一个JavaScript文件,或某些其他潜在的恶意源。在这种情况下,图片源就是一个简单页面的URL:

该 页面仅在我登录并且设置了某些cookie时起作用。由于我实际登录了应用程序,因此当浏览器试图通过进入图片源URL获取图片时,它同时删除了我的首个 片断。这听起来不是很危险,但是如果我对应用程序有一点熟悉,我还可以请求一个能够删除用户信息或使管理员为其他用户授予权限的URL。

为 了保护您的应用程序免遭XSRF的侵害,您不应当允许通过GET来要求更改状态的活动;POST方法的发明就是为了应对此种状态更改请求。这一更改本身可 能能够减轻以上的攻击,但是通常这并不够,您还需要在所有状态更改请求中包含一个不可预测的值来防范XSRF。如果您希望了解更多有关XSRF的知识,请 查询Gruyere

跨站脚本包含(XSSI)- 您所有的脚本都是我们的

现在很多网站都能通过可以返回JSON数据的异步JavaScript请求动态更新页面内容。有时,JSON能够包含敏感数据,而如果没有正确的预防措施,那么很可能攻击者就能盗取此敏感信息。

让我们想象一下以下的情境:我创建了一个标准HTML页面并给您发送了链接;由于您很信任我,您就访问了我发送的链接。该页面仅包括几行内容:

<script>function _feed(s) {alert(“Your private snippet is: ” + s[‘private_snippet’]);}</script><script src=”http://google-gruyere.appspot.com/611788451095/feed.gtl”></script>

由于您登入到了Gruyere并且您有一个私人片断,您将在我的页面看到一个警告框,告知您有关您片断的内容。如往常一样,如果我设法启动一个警告框,我就能为所欲为;在这里,它仅是一个简单的片断,但是它也很可能是您最大的秘密。

防御您的应用程序不受XSSI的危害并不十分困难,但仍然需要谨慎的思考。您可以使用XSRF部分所解释的令牌、将您的脚本设置为仅回应POST请求,或简单地开启带有‘\n’的JSON响应以确保脚本无法执行。

SQL注入 – 仍然认为用户输入很安全吗?

如果我试图使用如下的用户名登入您的应用程序,将会发生什么?
无名氏’; 删除表成员;–(JohnDoe’; DROP TABLE members;–)

虽然这个具体的例证不会暴露用户数据,但由于它可能将您应用程序储存有成员信息在其上的SQL表完全移除,因此还是能造成很大的问题。

通 常,您可以通过主动思考和输入确认来保护您的应用程序免受SQL注入的侵害。首先,您是否能确认SQL用户需要拥有许可来执行“DROP TABLE members”吗?仅授予选择权限不是足够了吗?通过谨慎设置SQL用户的许可,您可以避免遭受痛苦的困扰和大量的麻烦。您还可以以另外一种方式配置错 误报告,这样如果查询失败,则数据库和它的表的名字将不会遭到暴露。
第 二,正如我们在XSS情形中所了解到的,永远都不要信任用户输入:对您来说看起来像是登陆表格的,对攻击者来说就是一个潜在的入口。对于即将储存在数据库 中的输入,永远要进行审查和确认,并且在任何可能的情况下,要利用在大多数数据库编程接口都能获取的、被称为有准备的或被参数化的声明。

了解网络应用程序如何得到利用是理解如何保护它们的第一步。因此,我们鼓励您参加Gruyere课程、参加其他来自Google编程学院的网络安全课程,并且,如果您正需要一款自动的网络应用程序安全测试工具的话,不妨试试skipfish。如果您还有其他问题,请在我们的网站站长帮助论坛发帖提出。

来源http://googlewebmaster-cn.blogspot.com/2011/05/blog-post.html

  1. AS
    2011年6月22日11:39

    Extension for Firefox:
    https://addons.mozilla.org/zh-CN/firefox/addon/webmaster-sape/
    “Дополнительная панель инструментов Firefox содержит набор функций, расширяющих возможности вебмастеров и оптимизаторов при работе в интерфейсе бирж SAPE и Uniplace.”
    “Панель инструментов содержит набор функций, расширяющих возможности вебмастеров и оптимизаторов при работе в интерфейсе бирж SAPE и Uniplace (начиная с версии 2.0).

    Интерфейс оптимизатора

    – Проверка индексации страниц и ссылок в Google и Yandex непосредственно в интерфейсе биржи
    – Проверка второго уровня вложенности страниц-доноров
    – Проверка наличия страниц и купленных ссылок в кэше Yandex
    – Возможность отображения актуального PageRank купленных страниц и ТИЦ сайтов не дожидаясь пересчета
    – Проверка на склейку ТИЦ и PageRank страниц с размещенными ссылками.
    – Выборочный экспорт размещенных ссылок в текстовый файл (экспортируются помеченные галочками ссылки)
    – Проверка URL купленных страниц и новых заявок на наличие стоп-слов
    – Проверка текста страниц-доноров на наличие стоп-слов
    – Экспорт локальных и глобальных черных списков
    – Экспорт извещений в текстовый файл
    – Проверка реального количества внешних ссылок на страницах-донорах с учетом тегов noindex
    – Проверка количества текста на странице и общего количества ссылок (внешних и внутренних)
    – Проверка наличия размещенной ссылки на купленных страницах. Возможно использование User-Agent Яндекса или Google (анти-клоакинг)
    – Показ тематики и региона, присвоенных Яндексом площадке (если эти данные отдаются тулбару Яндекса)
    – Анализ поискового трафика Google по данным сервиса SEMRush
    – Проверка страниц-доноров на фильтр “Ты последний”
    – Автоматическая проверка доноров на наличие в базе вредоносных и фишинговых сайтов Google
    – Проверка Alexa Rank сайтов-доноров

    Интерфейс вебмастера

    – Проверка проиндексированности страниц сайта в Яндекс и Google
    – Контроль URL страниц перед модерацией площадки (отметка страниц с сессиями, профилей, страниц поиска и т.д.)
    – Проверка актуального значения PageRank страниц сайта
    – Экспорт оптимизаторских ссылок в текстовый файл и форма быстрой расстановки галочек по списку URL на странице с размещенными ссылками
    – Проверка проиндексированности страниц, на которые ссылаются оптимизаторские ссылки, в Яндекс
    – Проверка соответствия анкоров размещенных ссылок тексту оптимизаторских страниц, на которые они ведут
    – Проверка текста и URL оптимизаторских страниц на наличие стоп-слов
    – Возможность отображения значения ТИЦ оптимизаторских сайтов
    – Показ текущего курса доллара и валютный калькулятор на странице вывода средств
    – Экспорт локальных и глобальных черных списков
    – Быстрый отсев спам-заявок с помощью набора соответствующих фильтров на странице с новыми заявками
    – Контроль WAIT-заявок от оптимизаторов, не подтверждающих размещение в установленный дневный срок
    – Автоматическая проверка акцепторов на наличие в базе вредоносных и фишинговых сайтов Google

    Фильтры заявок

    Быстрое выделение и отметка следующих типов заявок:
    – с двумя одинаковыми словами подряд
    – с тремя одинаковыми словами в тексте
    – в которых присутствуют две пары одинаковых слов
    – длиннее 50 символов
    – длиннее 75 символов
    – без русских букв
    – только из заглавных букв
    – начинающиеся не с буквы или цифры (точки в начале и т.д.)
    – содержащие сдвоенные, неразрывные пробелы и символы табуляции
    – любой другой пользовательский фильтр, заданный регулярным выражением

    Для фильтров, использующих сравнение слов, можно использовать их нестрогое сравнение (когда слова отличаются в окончаниях)
    Также имеется возможность составить свой собственный набор часто используемых фильтров и повесить их последовательный вызов на одну кнопку.

    Для всех видов проверок, занимающих продолжительное время, предусмотрена возможность задавать таймаут между запросами, всплывающие подсказки о начале/конце проверки и звуковые оповещения (по желанию).

    Дополнительные кнопки позволяют снять отметки со всех заявок, открыть SAPE или форум и быстро переключать видимость панели
    图片集”

    • iGFW
      2011年6月22日13:42

      感谢支持,呵呵

  2. AS
    2011年6月22日11:25

    Extension for Firefox:
    https://addons.mozilla.org/zh-CN/firefox/addon/websitepulse-test-tools/
    “Instantly test your website availability or server response time, ping response, MX, NS records and much more.”
    “The WebSitePulse Test Tools Firefox Extension gives you a complete set of free web monitoring tools to support your website. Instantly test your website availability or server response time, ping response, MX, NS records and much more with a single click on your Firefox browser!

    Tests Description

    Website Test
    The Website test verifies the server status, downloads the full HTML content and measures the response time of the test website. The test results display the times for DNS lookup, connect, download the first byte and download the complete HTML of the tested website.

    Web Page Test
    The Web page test verifies the URL availability, downloads the complete HTML content, the images and all the other internal web page objects and measures the download speed of each of the components. The test results display DNS time, connect time, first and last byte times for each of the web page objects. This test is limited to the initial 30 page objects.

    HTTP Headers test
    The HTTP Headers test requests the entered URL, retrieves the HTTP response headers, verifies the HTTP status codes and displays the received response headers. Find out more about the different HTTP status codes

    Website Test behind the Great Firewall of China
    ‘Website Test behind the Great Firewall of China’ will test whether your web-site is visible from China. The monitoring agent resolves the domain name from selected location in China, connects to the test website and downloads the complete HTML content. The test results display DNS lookup time, time to connect, time to download the first byte and time to download the complete HTML of the tested web site.

    HostName Test
    The HostName test performs DNS lookup and provides information about how a domain or hostname (www.yourdomain.com) is resolved to an IP address (69.147.114.210). Common use of the HostName test is to verify that the DNS records are correct and specific domain points to the correct IP address.
    MX lookup
    The MX lookup test performs an MX record (Mail exchanger record) lookup for a specific e-mail address, which returns a list with servers responsible for delivering e-mail to that address and their priority relative to each other. The test results display the hostnames and IP addresses of the Mail Exchange Servers.

    NS records lookup
    The NS lookup test performs an NS record (Name Servers record) lookup for a specific domain name, which returns the Name Servers responsible for the domain name records. The test results display the hostnames and IP addresses of the Name Servers.

    SPF lookup
    The SPF (Sender Policy Framework) lookup test does a query for the DNS records and returns any available SPF records for a given domain name. For more information on SPF, check the SPF web site.

    Reverse DNS
    The Reverse DNS test performs a reverse DNS lookup for a specific IP address and returns the hostname associated with that IP address.

    Blacklist Check
    The Blacklist check queries the major DNS Blacklists – Sorbs, Spamhaus, NJABL, DSBL, CBL and PSBL for specific IP address and returns whether it is listed for sending spam, as an open proxy relay or for other possibly malicious activities.

    Server Test
    The Server test verifies the availability and measures the response time of any TCP/UDP based web service connected to the Internet. Server tests include HTTP, HTTPS, FTP, SMTP, POP3, IMAP, SSH, Telnet, DNS and Custom services.

    Email Validation test
    The Email Validation test validates the syntax of the entered email address, performs a DNS query for the domain and checks all SMTP servers listed in the MX (Mail Exchanger) records.

    PING Test
    The PING test checks if a web host or IP address is reachable across the Internet by sending multiple ICMP packets and listening for the replies. The PING test measures the time it takes the packets to go from the selected testing monitoring location to the host tested. The test results display the shortest, the average and the maximum round-trip times and packet loss rate between hosts.

    Traceroute
    The Traceroute test (a.k.a. trace route, tracert) will trace the route that test packets take from one web destination to another. The test results provide a list of hosts or IP addresses showing the route taken by the test packets starting from the selected monitoring location to the destination Domain or IP.

    WHOIS
    The WHOIS query determines the owner and/or the administrator of a domain name and provides contact details. The WHOIS system originated as a method that system administrators could use to look up information to contact other IP address or domain name administrators, almost like “white pages”.

    IP / Network Lookup
    The IP / Network Lookup does a WHOIS query to determine the owner and/or the administrator of an IP address or network and to provide contact details.

    MTR – traceroute & ping
    The MTR test is based on the linux program MTR, which combines the functionality of the “traceroute” and “ping” programs in a single network diagnostic tool. See the MTR official page for more info on MTR.
    图片集”

  3. AS
    2011年5月21日16:07

    webmaster-tools – 翻墙工具,SEO工具 – Google Project Hosting
    https://code.google.com/p/webmaster-tools/
    “为常在网上穿梭的朋友,以及热衷建站的同志提供一些实际,有用的软件工具.
    A.对抗GWF,共享翻墙软件
    1.BitviseTunnelier
    2.MyEntunnel
    3.BTWall
    4.qTor
    B. SEO工具,站长必备工具 ”
    “Downloads

    BTWall.rar
    Expat-Shield-HSS-1.54-Anchor-Free-232.rar
    Hexago-Gateway-6.06-Client-RELEASE-win32.exe
    MyEntunnel 3.5.2.rar
    Myentunnel 3.5.7z
    NewbyterProxy.zip
    SEO Monitor 0.9.1.rar
    SiteMapBuilder.zip
    Tor Browser.exe
    Tunnelier-Inst.exe
    myentunnel3.5.2(original).rar
    proxypal.appinn.com.7z
    qtor_1.2r33.7z
    seobar3.rar
    vforchrome0.10a.7z
    wallproxy-win.7z ”
    Downloads – webmaster-tools – 翻墙工具,SEO工具 – Google Project Hosting
    https://code.google.com/p/webmaster-tools/downloads/list

  4. AS
    2011年5月20日19:38

    1.https://code.google.com/p/beef/
    “Overview
    The Browser Exploitation Framework (BeEF) is a powerful professional security tool. BeEF is pioneering techniques that provide the experienced penetration tester with practical client side attack vectors. Unlike other security frameworks, BeEF focuses on leveraging browser vulnerabilities to assess the security posture of a target. This project is developed solely for lawful research and penetration testing.
    BeEF hooks one or more web browsers as beachheads for the launching of directed command modules. Each browser is likely to be within a different security context, and each context may provide a set of unique attack vectors. The framework allows the penetration tester to select specific modules (in real-time) to target each browser, and therefore each context.
    The framework contains numerous command modules that employ BeEF’s simple and powerful API. This API is at the heart of the framework’s effectiveness and efficiency. It abstracts complexity and facilitates quick development of custom modules.
    Main Site
    Main hosting site: http://bindshell.net/tools/beef
    https://code.google.com/p/beef/downloads/list
    2.https://code.google.com/p/zaproxy/
    “The OWASP Zed Attack Proxy (ZAP) is an easy to use integrated penetration testing tool for finding vulnerabilities in web applications.
    It is designed to be used by people with a wide range of security experience and as such is ideal for developers and functional testers who are new to penetration testing as well as being a useful addition to an experienced pentester’s toolbox.
    Please take our Online Survey to let us know what you would like the developers to focus on.
    This Google Code project is used for the downloads, online help pages, issues and source code.
    For more information please visit the OWASP ZAP homepage.
    ZAP provides automated scanners as well as a set of tools that allow you to find security vulnerabilities manually.
    Some of ZAP’s features:

    Intercepting Proxy
    Automated scanner
    Passive scanner
    Brute Force scanner
    Spider
    Port Scanner

    Some of ZAP’s characteristics:

    Easy to install (just requires java 1.6)
    Ease of use a priority
    Comprehensive help pages
    Under active development
    Open source
    Free (no paid for ‘Pro’ version)
    Cross platform
    Involvement actively encouraged
    It supports the following languages:

    English
    Brazilian Portuguese
    Chinese
    French
    German
    Greek
    Indonesian
    Japanese
    Polish
    Spanish
    ZAP is a fork of the well regarded Paros Proxy.
    Details of the changes made are here: Releases ”
    https://code.google.com/p/zaproxy/downloads/list
    3.https://code.google.com/p/websecurify/
    “Websecurify Security Testing Runtime
    Websecurify is a powerful web application security testing platform designed from the ground up to provide the best combination of automatic and manual vulnerability testing technologies.
    Some of the main features of Websecurify include:
    Available for all major operating systems (Windows, Mac OS, Linux)
    Simple to use user interface
    Built-in internationalization support
    Easily extensible with the help of add-ons and plugins
    Exportable and customisable reports with any level of detail
    Moduler and reusable design
    Powerful manual testing tools and helper facilities
    Powerful analytical and scanning technology
    Scriptable support for JavaScript and Python
    Extensible via many languages including JavaScript, Python, C, C++ and Java
    The Websecurify platform is sponsored and actively developed by:
    GNUCITIZEN”
    https://code.google.com/p/websecurify/downloads/list

    搭建博客