<!-- /\* Font Definitions \*/ @font-face {font-family:Tahoma; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Microsoft YaHei ; panose-1:2 11 5 3 2 2 4 2 2 4; mso-font-charset:134; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-2147483001 672087122 22 0 262175 0;} @font-face {font-family:Tahoma; panose-1:2 11 6 4 3 5 4 4 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-520081665 -1073717157 41 0 66047 0;} @font-face {font-family:Consolas; panose-1:2 11 6 9 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-520092929 1073806591 9 0 415 0;} @font-face {font-family:"\\@Microsoft YaHei "; panose-1:2 11 5 3 2 2 4 2 2 4; mso-font-charset:134; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-2147483001 672087122 22 0 262175 0;} @font-face {font-family:"\\@Tahoma"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} /\* Style Definitions \*/ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; mso-pagination:widow-orphan; layout-grid-mode:char; mso-layout-grid-align:none; font-size:11.0pt; font-family:"Tahoma","sans-serif"; mso-fareast-font-family:Microsoft YaHei ; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p {mso-style-priority:99; mso-margin-top-alt:auto; margin-right:0cm; mso-margin-bottom-alt:auto; margin-left:0cm; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Tahoma; mso-bidi-font-family:Tahoma;} span.hljs-number {mso-style-name:hljs-number; mso-style-unhide:no;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:11.0pt; mso-ansi-font-size:11.0pt; mso-fareast-font-family:Microsoft YaHei ; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:0pt;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:11.0pt;} /\* Page Definitions \*/ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page WordSection1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.WordSection1 {page:WordSection1;} /\* List Definitions \*/ @list l0 {mso-list-id:279725072; mso-list-template-ids:-1797495592;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->
Wechat domain name screening detection interface wechat domain name detection interface tool
Some time ago, there was a need to share articles (advertisements) in wechat. In order to ensure that a domain name can be accessed, it is necessary to check whether it is sealed, and delete the domain name after it is sealed. In order to prevent being blocked, we have made three-level domain name jump. The first level uses some url jump loopholes that must be investigated for authoritative websites. The second level uses our own, and the third level uses the final advertising domain name.
At first, it thought that it would be web WeChat, or some location of WeChat official account development platform could be detected. The result was failed and the detection was not accurate. Later, I went back to test the website above. In three computers with different ip addresses, only one domain name can be detected successfully, or none can be detected successfully. Prove that concurrent operations cannot be performed.
So I know the principle. Simulate the user's click operation in the wechat client to check whether it is blocked. The specific ideas are as follows.
I use the daily simulator (I have to use the wechat of my mobile phone, which can't be detected when I use the domain names of. top and. wang in the wechat of my pc), php as the back-end server, uses Yi language to get the domain names to be detected from the back-end, copies the simulation to wechat and sends it, clicks the domain name to open it, then uses Yi language's mapping function to find the red exclamation mark map, if found, say After the domain name is sealed, the detection requests the backend to delete the address.
ps: for url jump vulnerabilities, relatively large websites may be in the wechat white list, which is not easy to be blocked. There are many websites with url jump vulnerabilities, which are also easy to find. How to find them... No more.
As for concurrent operations, if you want to make an interface open to the outside world, you need to have enough concurrent operations. Idea: it is recommended to use nodejs, php and python, depending on your preferences.
Easy language uses server components to monitor a port. When the server receives the query request, it submits it to Yi language, the emulator opens more and uses multiple threads to detect multiple domain names at the same time.
The specific plan is to block the illegal content, so that Tencent can not detect the illegal content. The safest way is to block the user complaint button with technical means. After the implementation of such a set of programs, everyone's domain name will definitely get a good protection effect. I also recommend a good test interface (monkey API), hoping to help you.
- $url = "http://api.monkeyapi.com";
- $params = array(
- 'appkey' =>'appkey',_ //__ You applied for__ APPKEY_
- 'url' =>' www.url.com ', //__ Websites to query_
- )Add q consultation if you don't understand: 510124737 -- >
- $paramstring = http\_build\_query($params);
- $content = Curl($url, $paramstring);
10.$result = json\_decode($content, true);
11.if($result) {
- var_dump($result);
13.}else {
- //__ Request exception
15.}
16.
17._/**_
- * Request interface return content_
- * @param_ string $url [requested__ URL__ Address]
- * @param_ string $params [__ please
Parameters of_ ]
- * @param_ int $ipost__ POST__ Form]
- * _@return_ string
23._*/_
24.function Curl($url, $params = false, $ispost = 0)
25.{
- $httpInfo = array();
- $ch = curl_init();
28.
- curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
- curl_setopt($ch, CURLOPT_TIMEOUT, 60);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
- if ($ispost) {
- curl_setopt($ch, CURLOPT_POST, true);
- curl_setopt($ch, CURLOPT\_POSTFIELDS, $params);
- curl_setopt($ch, CURLOPT\_URL, $url);
- }else {
- if ($params) {
- curl_setopt($ch, CURLOPT\_URL, $url.'?'.$params);
- } else {
- curl_setopt($ch, CURLOPT\_URL, $url);
- }
- }
45.
- $response = curl\_exec($ch);
- if ($response === FALSE) {
- //echo "cURL Error: " . curl_error($ch);
- return false;
- }
51.
- $httpCode = curl\_getinfo($ch, CURLINFO_HTTP_CODE);
- $httpInfo = array\_merge($httpInfo, curl_getinfo($ch));
- curl_close($ch);
- Add q consultation if you don't understand: 510124737 -- >
r