Heim Web-Frontend H5-Tutorial Über das CCF CSP-Fenster

Über das CCF CSP-Fenster

Sep 14, 2018 pm 02:02 PM

XSS-Cross-Site-Scripting-Angriff, der die Same-Origin-Richtlinie durch gefälschte Inhalte und Klickköder umgeht. Dies ist ein großes Problem, und wenn ein Angreifer erfolgreich Code einschleust, kann eine beträchtliche Menge an Benutzerdaten verloren gehen.

Problembeschreibung

In einem bestimmten Grafikbetriebssystem gibt es N Fenster, jedes Fenster ist ein rechteckiger Bereich, dessen beide Seiten parallel zur Koordinatenachse sind. . Punkte am Rand des Fensters gehören ebenfalls zum Fenster. Es gibt hierarchische Unterschiede zwischen Fenstern. In einem Bereich, in dem sich mehrere Fenster überlappen, wird nur der Inhalt des Fensters der obersten Ebene angezeigt.
Wenn Sie auf einen Punkt auf dem Bildschirm klicken, wählen Sie das Fenster der obersten Ebene an der angeklickten Position aus und dieses Fenster wird auf die oberste Ebene aller Fenster verschoben, während die hierarchische Reihenfolge der übrigen Fenster unverändert bleibt. Wenn die Stelle, auf die Sie klicken, zu keinem Fenster gehört, ignoriert das System Ihren Klick.
Jetzt möchten wir, dass Sie ein Programm schreiben, um den Vorgang des Klickens auf ein Fenster zu simulieren.

Eingabeformat

Die erste Eingabezeile enthält zwei positive ganze Zahlen, nämlich N und M. (1 ≤ N ≤ 10,1 ≤ M ≤ 10)
 Die nächsten N Zeilen geben die Positionen von N Fenstern in der Reihenfolge von unten nach oben an. Jede Zeile enthält vier nicht negative ganze Zahlen x1, y1, x2, y2, die ein Paar Scheitelpunktkoordinaten des Fensters (x1, y1) und (x2, y2) angeben. Es ist garantiert, dass x1 <
Jede der nächsten M Zeilen enthält zwei nicht negative ganze Zahlen x, y, die die Koordinaten eines Mausklicks darstellen.
Die x- und y-Koordinaten aller Punkte und Eckpunkte des in die Frage einbezogenen Rechtecks ​​überschreiten nicht 2559 bzw. 1439.

Ausgabeformat

Die Ausgabe umfasst M Zeilen, jede Zeile stellt das Ergebnis eines Mausklicks dar. Wird durch diesen Mausklick ein Fenster ausgewählt, wird die Nummer dieses Fensters ausgegeben (Fenster werden in der Reihenfolge der Eingabe von 1 bis N nummeriert); andernfalls wird „IGNORED“ (ohne doppelte Anführungszeichen) ausgegeben.

Beispieleingabe

3 4
0 0 4 4
1 1 5 5
2 2 6 6
1 1
0 0
4 4
0 5

Beispielausgabe

2
1
1
IGNORIERT

Beispielbeschreibung

Die Position Das zum ersten Mal angeklickte Fenster gehört sowohl zum 1. als auch zum 2. Fenster. Da sich das 2. Fenster jedoch oben befindet, wird es ausgewählt und nach oben verschoben.
 Die Position des zweiten Klicks gehört nur zum ersten Fenster, daher wählt dieser Klick dieses Fenster aus und bringt es nach oben. Die hierarchische Beziehung zwischen den drei Fenstern ist nun genau das Gegenteil des Ausgangszustands.
Die zum dritten Mal angeklickte Position gehört zum Bereich von drei Fenstern gleichzeitig, aber da das erste Fenster nun oben liegt, ist es ausgewählt.
 Der zuletzt angeklickte Wert (0, 5) gehört zu keinem Fenster.

Analyse: Eine sehr einfache Frage, nicht zu schwierig, solange die Reihenfolge geklärt ist.

#include <iostream>
#include<vector>
using namespace std;

int main()
{
	int N, M;
	cin >> N >> M;
	vector<int>win;
	vector<int>::iterator it;
	for (int i = N; i > 0; i--)
	{
		win.push_back(i);
	}
	int position[11][4];
	int cli[13][2];
	for (int i = 1; i <= N; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			cin >> position[i][j];
		}
	}
	for (int i = 0; i < M; i++)
	{
		for (int j = 0; j < 2; j++)//由于写这个的时候精神状态不是很好,原来写成j>2了。后来实在找不到哪里错了,只好把for循环重写了一遍。
		{
			cin >> cli[i][j];
		}
	}
	for (int i = 0; i < M; i++)
	{
		bool you = true;
		for (int j = 0; j < N; j++)
		{
			if (cli[i][0] >= position[win[j]][0] && cli[i][0] <= position[win[j]][2] && cli[i][1] >= position[win[j]][1] && cli[i][1] <= position[win[j]][3])
			{
				cout << win[j] << endl;
				you = false;
				if (j != 0)
				{
					int a = win[j];
					for (it = win.begin(); it != win.end();)
					{
						if (*it == a)
						{
							it = win.erase(it);
						//	break;
						}   //删除元素,返回值指向已删除元素的下一个位置
						else
						{
							++it;
						}    //指向下一个位置
					}
					win.insert(win.begin(), a);
				}
				break;
			}
		}
		if (you)
		{
			cout << "IGNORED" << endl;
		}
		
	}
	return 0;
}
Nach dem Login kopieren

Verwandte Empfehlungen:

HTML5-Sicherheitseinführung Einführung in die Content Security Policy (CSP)_html5 Tutorial-Fähigkeiten

html5 Basic Tags (HTML5-Video-Tag, Verwendung neuer HTML5-Tags)_HTML5-Tutorial-Fähigkeiten

Das obige ist der detaillierte Inhalt vonÜber das CCF CSP-Fenster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie füge ich meiner HTML5 -Website Audio hinzu? Wie füge ich meiner HTML5 -Website Audio hinzu? Mar 10, 2025 pm 03:01 PM

In diesem Artikel wird erläutert, wie Audio in HTML5 mit dem & lt; audio & gt; Element, einschließlich Best Practices für die Formatauswahl (MP3, OGG Vorbis), Dateioptimierung und JavaScript -Steuerung für die Wiedergabe. Es betont die Verwendung von mehreren Audio f f

Wie verwende ich Ansichtsfenster -Meta -Tags, um die Seite zu steuern, die auf mobilen Geräten skaliert wird? Wie verwende ich Ansichtsfenster -Meta -Tags, um die Seite zu steuern, die auf mobilen Geräten skaliert wird? Mar 13, 2025 pm 08:00 PM

In dem Artikel werden die Meta-Tags mit Ansichtsfenster besprochen, um die Seite zu steuern, die auf mobilen Geräten skaliert und sich auf Einstellungen wie Breite und initiale Maßstäbe für optimale Reaktionsfähigkeit und Leistung konzentriert.Character Count: 159

Wie erstelle ich interaktive Spiele mit HTML5 und JavaScript? Wie erstelle ich interaktive Spiele mit HTML5 und JavaScript? Mar 10, 2025 pm 06:34 PM

In diesem Artikel werden interaktive HTML5 -Spiele mit JavaScript erstellt. Es umfasst das Spieldesign, die HTML -Struktur, das CSS -Styling, die JavaScript -Logik (einschließlich Ereignisbearbeitung und -animation) und die Audio -Integration. Essentielle JavaScript -Bibliotheken (Phaser, PI

Wie gehe ich mit der Privatsphäre und Berechtigungen des Benutzer Ort mit der Geolocation -API um? Wie gehe ich mit der Privatsphäre und Berechtigungen des Benutzer Ort mit der Geolocation -API um? Mar 18, 2025 pm 02:16 PM

In dem Artikel wird die Verwaltung der Privatsphäre und Berechtigungen des Benutzerstandorts mithilfe der Geolocation -API erörtert, wobei die Best Practices für die Anforderung von Berechtigungen, die Gewährleistung der Datensicherheit und die Einhaltung der Datenschutzgesetze hervorgehoben werden.

Wie verwende ich HTML5 -Formulare für Benutzereingaben? Wie verwende ich HTML5 -Formulare für Benutzereingaben? Mar 10, 2025 pm 02:59 PM

In diesem Artikel wird erläutert, wie HTML5 -Formulare erstellt und validiert werden. Es beschreibt die Form & gt; Element, Eingabetypen (Text, E -Mail, Nummer usw.) und Attribute (erforderlich, Muster, min, max). Die Vorteile von HTML5 -Formen gegenüber älteren Methoden, inkl.

Wie verwende ich die HTML5 -Drag & Drop -API für interaktive Benutzeroberflächen? Wie verwende ich die HTML5 -Drag & Drop -API für interaktive Benutzeroberflächen? Mar 18, 2025 pm 02:17 PM

In dem Artikel wird erläutert, wie die HTML5 -Drag & Drop -API verwendet wird, um interaktive Benutzeroberflächen zu erstellen, Schritte zu detaillieren, um Elemente draggierbar zu machen, Schlüsselereignisse zu verarbeiten und Benutzererfahrung mit benutzerdefiniertem Feedback zu verbessern. Es wird auch gemeinsame Fallstricke zu a diskutiert

Wie benutze ich die API der HTML5 -Seite Sichtbarkeit, um zu erkennen, wann eine Seite sichtbar ist? Wie benutze ich die API der HTML5 -Seite Sichtbarkeit, um zu erkennen, wann eine Seite sichtbar ist? Mar 13, 2025 pm 07:51 PM

In dem Artikel werden die Sichtbarkeits -API der HTML5 -Seite mit der Sichtbarkeit von Seiten ermittelt, die Benutzererfahrung verbessert und die Ressourcennutzung optimiert. Zu den wichtigsten Aspekten gehören die Pause, die Verringerung der CPU -Last und die Verwaltung von Analysen auf der Grundlage von Sichtbarkeitsänderungen.

Wie verwende ich die HTML5 WebSockets -API für die bidirektionale Kommunikation zwischen Client und Server? Wie verwende ich die HTML5 WebSockets -API für die bidirektionale Kommunikation zwischen Client und Server? Mar 12, 2025 pm 03:20 PM

In diesem Artikel werden die HTML5 WebSockets-API für die Kommunikation zwischen bidirektionaler Client-Server in Echtzeit erläutert. Es werden clientseitige (JavaScript) und serverseitige (Python/Flask) -implementierungen beschrieben, die Herausforderungen wie Skalierbarkeit, staatliches Management, ein

See all articles