Обыкновенный имитация входа рептилий

задняя часть Безопасность рептилия

подготовить знания

В чем разница между post и get:

  1. Согласно спецификации HTTP, GET обычно используется для получения/запроса информации о ресурсах и должен быть безопасным и идемпотентным. POST обычно используется для обновления информации о ресурсах.
  2. get заключается в передаче данных в URL-адресе, а данные помещаются в заголовок запроса. post - передать данные в теле запроса
  3. Объем данных, передаваемых get, невелик, и он может отправлять данные только в заголовке запроса. Объем данных, передаваемых по почте, относительно велик и обычно по умолчанию неограничен.
  4. получить безопасность очень низкая, почтовая безопасность высока. Но эффективность выполнения выше, чем у метода Post. предложение: 1. Безопасность get-метода хуже, чем post-метода, если он содержит конфиденциальную информацию, рекомендуется использовать post-метод отправки данных; 2. При запросе данных рекомендуется использовать метод Get, при добавлении, изменении или удалении данных рекомендуется использовать метод Post;

Обзор

В ежедневном сканере некоторым веб-сайтам необходимо войти в систему, чтобы получить информацию о веб-сайте.В настоящее время нам нужно написать имитацию входа в систему, чтобы получить страницу для сканирования, а затем проанализировать и извлечь.

Имитировать сетку для входа в систему

1. Сначала мы открываем веб-сайт ящика, выбираем вход (сначала зарегистрируйтесь, если не зарегистрированы), мы вводим пароль учетной записи по мере необходимости, затем мы намеренно вводим неправильный пароль, открываем инструмент разработчика f12, нажимаем параметр сети, а затем нажмите войти, скриншот выглядит следующим образом:

Через информацию заголовка запроса мы обнаружили, что есть форма формы, которая отправляет 3 элемента данных, и мы также можем заметить ответ, который она возвращает,
Это было отправлено нам на страницу

Имитация входа

Мы проанализировали, как подаются данные раньше, а потом начали моделировать, написали пост-запрос:

import requests

response = requests.post(
    url='https://dig.chouti.com/login',
    data = {
        'phone':'8613185007919',
        'password':'155560',
        'oneMonth':'1'
    }

)
print(response.text)

Теперь посмотрим на результаты:

<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>网站防火墙</title>
<style>
p {
	line-height:20px;
}
ul{ list-style-type:none;}
li{ list-style-type:none;}
</style>
</head>

<body style=" padding:0; margin:0; font:14px/1.5 Microsoft Yahei, 宋体,sans-serif; color:#555;">

 <div style="margin: 0 auto; width:1000px; padding-top:70px; overflow:hidden;">
  
  
  <div style="width:600px; float:left;">
    <div style=" height:40px; line-height:40px; color:#fff; font-size:16px; overflow:hidden; background:#6bb3f6; padding-left:20px;">网站防火墙 </div>
    <div style="border:1px dashed #cdcece; border-top:none; font-size:14px; background:#fff; color:#555; line-height:24px; height:220px; padding:20px 20px 0 20px; overflow-y:auto;background:#f3f7f9;">
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; color:#fc4f03;">您的请求带有不合法参数,已被拦截!请勿在恶意提交。</span></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">可能原因:您提交的内容包含危险的攻击请求, 自动记录 ip 相关信息通知管理员</p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:1; text-indent:0px;">如何解决:</p>
<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">1)检查提交内容;</li>
<li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">2)普通网站访客,请联系网站管理员;</li></ul>
    </div>
  </div>
</div>
</body></html>

Веб-сайт передает нам эту информацию. Мы должны думать, что, когда мы видим эту информацию, это мера предотвращения сканирования веб-сайта. В настоящее время мы должны добавить «User-Agent» к почтовому запросу и обновить окончательный код. следующим образом:

import requests

response = requests.post(
    url='https://dig.chouti.com/login',
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
    },
    data = {
        'phone':'8613185007919',
        'password':'155560',
        'oneMonth':'1'
    }

)
print(response.text)

Запустим и посмотрим на результат:

{"result":{"code":"9999", "message":"", "data":{"complateReg":"0","destJid":"cdu_53360741818"}}}

Описание выполнено успешно, тогда наша имитация входа в систему завершена.