-
Excel alle Treffer eines Suchmustern zugänglich machen
Mit Excel gibt es die Suchen-Funktion. Diese liefert Treffer, auch über die gesamte Arbeitsmappe.
Es gibt aber noch keine Möglichkeit die Trefferliste zu exportieren oder zu kopieren
Diese kleine VBA-Script scheibt die Treffen in eine eigenes Tabellen-Blatt
Vorarbeit:
- In den VBA-Editor wechsel: ALT-F11
- Menü -> Einfügen Modul
- VBA-Code kopieren und einfügen
- Excel-Mappe als .xlsm speichern
- In den Optionen sollte das Menüband angepasst werden und die Entwicklertools aktiviert sein
- Sollten Markos nicht erlaubt sein diese aktivieren
-> Truste Center -> Eiinstellungen für das Trust Center
-> Makroeinstellungen müssen mindestens auf "Alle Makros mit Benachrigitgung deaktivieren" gestellt sein
- Im Menüpunkt gibt es jetzt die Entwickertools
Ausführen:
Makros-Button aklicken
Script:
Option Explicit
Sub FindString()
'#########################################
Const cTabellennameTreffer = "Treffer"
'#########################################
Dim c As Range
Dim ws As Worksheet, wsTreffer As Worksheet
Dim wb As Workbook
Dim suchMuster As String
Dim i As Integer
suchMuster = InputBox("Bitte Suchmuster eingeben" & vbCrLf & "Voreingestellt ist exakter Treffer" & vbCrLf & "Sonst Platzhalter verwenden" & vbCrLf & " -> *" & vbCrLf & " -> ?", "Trefferliste erstellen", ActiveCell.Value)
If suchMuster = "" Or Replace(Replace(suchMuster, "?", ""), "*", "") = "" Then
MsgBox "Leeres Suchmuster ''", vbOKOnly, "Abbruch der Suche"
GoTo Exit_:
End If
Application.ScreenUpdating = False
Set wb = ActiveWorkbook
On Error Resume Next
Set wsTreffer = wb.Worksheets(cTabellennameTreffer)
If wsTreffer Is Nothing Then
Set wsTreffer = wb.Worksheets.Add
With wsTreffer
.Name = "Treffer"
.Range("A1") = "Zelle"
.Range("B1") = "Tabelle"
.Range("C1") = "Zellinhalt"
.Range("D1") = "Verknüpfung"
.Rows("1:1").Font.Bold = True
.Activate
With ActiveWindow
.SplitColumn = 0
.SplitRow = 1
End With
End With
ActiveWindow.FreezePanes = True
End If
wsTreffer.Range("A2:D100000") = ""
On Error GoTo Errors_
i = 2
For Each ws In wb.Worksheets
If ws.Name <> "Treffer" Then
With ws.Range("A1:AZZ100000")
Set c = .Find(suchMuster, LookIn:=xlValues)
If Not c Is Nothing Then
Do
Set c = .FindNext()
If Not c Is Nothing Then
wsTreffer.Cells(i, 1) = c.Address
wsTreffer.Cells(i, 2) = ws.Name
wsTreffer.Cells(i, 3) = c.Value
wsTreffer.Cells(i, 4) = " =" & IIf(InStr(1, ws.Name, " ", vbTextCompare), "'", "") & ws.Name & IIf(InStr(1, ws.Name, " ", vbTextCompare), "'!", "!") & c.Address
c.Value = Replace(c.Value, c.Value, "|-|")
i = i + 1
End If
Loop While Not c Is Nothing
End If
End With
End If
Next
i = 2
With wsTreffer
While .Cells(i, 1) <> ""
Set ws = wb.Worksheets(.Cells(i, 2).Value)
Set c = ws.Range(.Cells(i, 1).Value)
c.Value = .Cells(i, 3)
i = i + 1
Wend
.Activate
End With
Set ws = Nothing
Set wsTreffer = Nothing
Set wb = Nothing
Exit_:
Application.ScreenUpdating = True
Exit Sub
Errors_:
Err.Clear
GoTo Exit_
End Sub
-
Wordpress Admin-Bereich absichern
Um einen Angreifer den Zugriff auf die Login-Seite zu erschweren kann über den Apache-Server eine .htaccess Anweisung erstellt werden.
Wordpress leitet /admin und /login auf /admin-login.php um. Somit muss nur der Zugriff auf diese PHP-Seite begrenzt werden.
Diese Zugriffsbegrenzung auf Apache-Ebene löst die eigentliche Anmeldung in Wordpress nicht ab.
Es kann also die selbe Anmeldung Benutzername/Passwort oder eine 2. Kombination verwendet werden.
Hierfür benötigt es 2 Dateien. Die .htaccess ist schon vorhanden. Als 2. muss noch eine .htpasswd erstellt werden mit dem Benutzername und Passwort
1.) Vorarbeit
Als erstes wird der absolute Pfad zur Wordpressinstallation auf dem Server benötigt. Wordpress ist dabei keine Hilfe. Ein FTP-Programm ist mal vorausgesetzt ;-)
Einfach eine Datei z.B. dir.php erstellen und mit einem Editor öffnen und folgendes Eingeben.
Die Datei in die Wordpress-Installation hochladen und über den Browser aufrufen
z.B: https://bsp-homepage.de/dir.php (Wordpress wurde ins Web-Basisverzeichnis installiert)
https://bsp-homepage.de/wordpress/dir.php (In einen Unterordner)
Angezeigt wird dann so etwas ähnliches:
Die meisten Hoster setzen nach www die Kundennr. ein
/var/www/[KundenNr]/html bzw. /var/www/[KundenNr]/html/wordpress
Dieser Pfad wird später in die .htaccess-Datei eingetragen für den Verweis auf die .htpasswd
2.) Passwort-Datei erstellen
Hierfür kann einfach einen Online Passwort-Generator verwendet werden. z.B. htpasswdgenerator.de oder redim.de Das erzeugte Passwort hat dann in etwa folgendes Aussehen:
Benutzer: klaus
Passwort: klein
Ergibt den Eintrag für die .htpasswd:
klaus:$apr1$t3iyb10q$7/mp1fTeqSwM.TMnfyjnk1
Eine neue Datei erzeugen und die Zeichenfolge einfügen, speichern und in den Wordpress-Ordner hochladen.
3.) .htaccess anpassen
Die Datei am einfachsten per FTP herunterladen und mit einem Editor öffnen.
Dann folgendes an Anfang in die Datei einfügen.
Hinweis: in diesem Bsp. liegt die Wordpress-Installation im Unterordner /wordpress Liegt die Installation wie scho noben erwähnt im Basisorder einfach /wordpress löschen
<IfModule mod_auth.c>
SetEnvIf Request_URI "^/wordpress/wp-login\.php$" ADMIN_INDEX
SuthName "Adminbereich"
SuthType Basic
AuthUserFile /var/www/[KundenNr]/html/wordpress/.htpasswd
<Limit GET POST>
Require valid-user
</Limit>
Satisfy any
Order allow,deny
Allow from all
Deny from env=ADMIN_INDEX
</IfModule>
# BEGIN WordPress
# Die Anweisungen (Zeilen) zwischen „BEGIN WordPress“ und „END WordPress“ sind
# dynamisch generiert und sollten nur über WordPress-Filter geändert werden.
# Alle Änderungen an den Anweisungen zwischen diesen Markierungen werden überschrieben.
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
# END WordPress
-
Eigener Cloudserver mit nextCloud / ownCloud
NextCloud
bietet einen einfachen Webinstaller an
Installation
- Einfach die setup-nextcloud.php herunterladen
Zum COMMUNITY PROJECTS herunterscrollen und den Web Installer Button anklicken
- Auf dem eigenen Web-Server einen Unterordner z.B. nextcloud erzeugen und die setup-nextcloud.php dorthin kopieren
- Die setup-nextcloud.php auf den eigenen Webadresse aufrufen und Setup durchlaufen
- Eine MySQL-Datenbank sollte vorhanden sein
- Nextcloud an die Datenbank anschließen
- Fehelrmeldung (Falsche TDL von nextcloud.com mit eingener ersetzen
-> https://bsp-homepage.de/nextcloud/index.php/core/apps/recommended
- Zusatzpakete installieren (wenn gewünscht)
- Infofenster durchlaufen oder mit X abbrechen
Speicherort der Daten
In /nextcloud/data/user sind die Dateien der einzelnen Benutzer abgglegt
Windows-App
PC-Seite:
Die Desktop-App von ownCloud oder nextCloud herunterladen und installieren.
- App mit ownCloud verbinden. (URL siehe WebDAV ↓ )
- Lokalen und Server-Ordner festlegen.
WebDAV
https://bsp-seite.de/nextcloud/remote.php/webdav/
OwnCloud
Wenn nur Bilder oder Videos Online betrachtet werden soll ist ownClound als Wahl geeignet. Auch als Backupserver für lokale Dateien des PC's via Desktop-App funktioniert ebenfalls gut.
Sobald aber aus dem "Markt" zusätzliche Apps installiert werden muss ein Enterprise-Key gekauft werden. Sonst kommt immer ein nerfiges Popup.
Installation
Einfach auf Download.zip klicken und die owncloud-complete-latest.zip herunterladen.
A) SSH Zugriff auf den Webspace vorhanden (schnelles entpacken)
- Per FTP die Zip-Datei auf den Webspace kopieren.
- Per SSH auf den Server einloggen und in den html-Ordner wechseln
- Vorab kurz prüfen ob die Daten in der Zip im owncloud Ordner liegen.
-> Wenn ja, die Zip mit unzip -q owncloud-complete-latest.zip entpacken (Dauert etwas).
-> Nein, ownclound Ordner erzeugen mkdir owncloud und unzip -q owncloud-complete-latest.zip -d ownloud in den Ordner entpacken
B) Kein SSH
- Per FTP den kompletten Ordner ownclound in der Zip-Datei auf den Webspace kopieren (Dauert deutlich länger).
- https://bsp-homepage.de/owncloud/ aufrufen, Admin-Benutzer und Passwort angeben
- Eine MySQL-Datenbank erzeugen
- Nextcloud an die Datenbank anschließen
- Ggf. Desktop app herunterladen und verbinden
- Zusatzpakete instalalieren (wenn gewollt)
- Infofenster durchlaufen oder mit X abbrechen
Market (Zusatzapps)
Freie Apps
* Lizenzeintrag "GNU Affero General Public License"
- Kalender (eigener Menüpunkt)
- Gallery (eigener Menüpunkt)
- Music (eigener Menüpunkt)
- PDF-Viewer (PDF's online betrachten)
- OnlyOffice (?)
- Files clipboard (Datien zwischen den Ordnern kopieren und verschieben
-
- Ransomware Protection
Kommerzielle Apps (Benötigen Eterprise Key)
* Sind in der Lizenzinfo makriert "ownCloud Commercial License", "AGPL"
- Tasks [Aufgaben] (eigener Menüpunkt)
- Notes
- Microsoft Office Online
- Microsoft Teams Bridge
-
Speicherort der Daten
in /owncloud/data/user sind die Dateien der einzelenen Benutzer abgglegt
Windows-App
PC-Seite:
Die Desktop-App von ownCloud oder nextCloud herunterladen und Installieren.
- App mit ownCloud verbinden. (URL siehe WebDAV ↓ )
- Lokalen und Server-Ordner festlegen.
WebDAV
Unten links Einstallungen:
https://bsp-homepage.de/owncloud/remote.php/dav/files/user/
-
Zugriffskontrolle via .htaccess auf Webseite(n)
Der Artikel befasst sich mit der Zugriffskontrolle auf Serverebene (Apache) schon bevor der Angreifer zum Login der Webseite gelangt.
Diese hier beschriebene Zugriffskontrolle soll ein guter Kompromiss zwischen Sicherheit und Komfort und administrativem Aufwand sein.
Geregelt wird dies über die .htacces und .htpasswd Dateien.
Viele CMS haben einen Backendbereich den es vor lästigen Zugriffsversuchen zu schützten gilt.
Der Backendbereich ist durch das CMS immer via Benutzernamen und Passwort geregelt.
Z.B. bei Joomla ist der Admin-Bereich auf einen fixen Unterordner bsp-homepage.de/administrator/ festgelegt. Diese kann also nicht geändert werden und ist somit dem Zugriff aus dem Internet erstmal offen. Dies kann zu Bruteforce Attacken führen und mache Provider legen dann den Zugang für ein paar Minuten lahm.
Ein einfacher Ansatz ist eine Beschränkung auf bestimme Benutzer oder freigegebene IP-Adresse bzw. IP-Bereiche.
Hieraus ergeben sich ein paar (kleine) administrative Problemchen.
A.) IP-Bereichsfreigabe
Hat ein Admin immer die selbe öffentliche IP dann kann nur diese freigegeben werden. (Diese Szenario ist äußert unwarscheinlich) bei einem Tarif für einen privaten DSL zugang.
-> Freigabe für diese IP z.B. allow from 93.192.15
Freigabe für IP-Bereiche. In der Ripe-Liste sind alle IP-Bereiche der jeweiligen Provider samt Bereiche aufgelistet
-> Freigabe für die Deutsche Telekom AG (Auszug)
allow from 93.192.0/10
allow from 62.154.0.0/16
Diese Liste kann dann immer wenn ein IP-Bereich eines Providers noch nicht erfasst ist um diesen Eintrag erweitert werden.
B.) Benutzername & Passwort
Wenn also außerhalb der IP-Bereichsfreigabe auf den Adminbereich Zugriff gewährt werden soll, eine Benutzerabfrage auslösen.
-> Benutzerfreigabe via .htwaswd
1. Möglichkeit ein einziges Masterpasswort auf Serverebene für den Backendbereich zu generieren und dieses dann alles Benutzer zukommen lassen.
2. In der Praxis wird es nicht durchsetzbar sein 2 verschiede Passwörter pro Benutzer zu vergeben. Hierzu benötigt es ein wenig mithilfe der Benutzer.
Einfach über diese Maske ein Passwort-Eintrag erzeugen und dem Admin zum Eintrag in die .htpasswd zukommen lassen.
Hier ein Passwortgenerator: https://htpasswdgenerator.de/
Das Ergebis könnte dann in etwa so aussehen:
.htaccess
AuthName "Adminbereich"
Order deny,allow
Deny from all
# Erlaubte IP-Bereiche
# Deutsche Telekom AG (Auszug IP-Bereiche)
# allow from 91.0.0.0/10
allow from 93.192.0.0/10
# IP-Bereiche ist nicht gültig dann Benutzername abfragen
AuthType Basic
AuthUserFile /var/www/kundexyz/html/administrator/.htpasswd
require valid-user
satisfy any
.htpaswd
nurichdarfrein:$1$A2m8L7dS$NVgiwFpivjqTKbwsru.Mi0
-
Semmelknödel
Rezept für 6 Knödel
Zutaten:
200 g (4) Semmel (alte getrocknete)
1 Bund Petersilie (gekreuselt)
2 Eier
1 große Zwiebel
300 ml Milch
1 TL Salz
Pfeffer & Muskatnuss
Zubereitung:
Die Semmel in 0,5-1 cm kleine Würfel zerteilen und in eine Schüssel geben.
Die Zwiebel in kleine Würfel schneiden und über die Semmel zersteuen.
Die verquirlten Eier über die Semmelstückchen geben,
Mit nicht der kompletten Milch übergiesen, Salzen, Pfeffern und Muskat dazugeben.
Jetzt das Ganze gut durchmischen.
Eine halbe Stunde alles zeihen lassen.
Danach alles durchkleten.
Vermutlich ist der Teig noch zu trocken dann die restliche Milch hinzugeben. Bei einem zu feuchten Teig kann mit Semmelbrösen das Genze wieder verfestigt werden.
Die Brotstückchen sollten jetzt gut zerdrückt werden können.
Je nach persönlicher vorliebe die Stückchen mehr zerdrücken.
Die Semmelknödel formen und in simmerndes gesalzenes Wasser geben. Nach ~ 20Min. sollten alle oben schwimmen und fertig.