Heim Backend-Entwicklung PHP-Tutorial 网站出有关问题了,有漏洞,今天来这里请csdn的兄弟帮忙解决

网站出有关问题了,有漏洞,今天来这里请csdn的兄弟帮忙解决

Jun 13, 2016 pm 12:01 PM
id nbsp post select sql

网站出问题了,有漏洞,今天来这里请csdn的兄弟帮忙解决
我做了个保健品站 http://www.bjp51.net 这两天有点问题,用360一扫,高危,只有49分,报告如下:



第一个是很严重的问题,今天想把第一个问题解决了。
看下360给出的意见


我不知道怎么改,希望大家帮忙解决下。



------解决方案--------------------
$id='';
if(!empty($_POST['id'])){
    for($i=0; $i    $id=$id.($_POST['id'][$i].',');
    }
    $id=substr($id,0,strlen($id)-1);//去除最后面的","
}
$sql="select * from zzcms_main where id in ($id)" 

他认为你未经检查就在 sql 指令中使用了传入的数据
------解决方案--------------------
SQL注入的原理是,从地址栏或者表单中注入


如果你从地址栏得到一个$_GET["a"],不经过过滤就直接使用到程序中,就会造成威胁。比如:

如果$_GET["a"]=1;那么:
$sql = "SELECT * FROM AA  WHERE id =$_GET["a"]";就是$sql = "SELECT * FROM AA  WHERE id =1";
但如果别人通过地址栏自行修改,把$_GET["a"]的值改为1  or (and) XXX各类代码,那这个查询语句就变成

$sql = "SELECT * FROM AA  WHERE id =1 or(and)  xxx";


于是就中招了。

所以地址栏和表单得到的参数,一定要格式化,过滤好,指定是什么类型,多长,限制哪些字符……
------解决方案--------------------
$sql="select * from zzcms_main where id in ($id)" ;
$id沒有進行過濾,用戶輸入什麼都可以,當然被注入了。

因為id只能是數字,所以可以用intval轉成數字,如果非數字會轉為0,這樣就注入不到了。
------解决方案--------------------
传入的数据把单引号替换为两个连续的单引号 , sql语句用传入的参数时加上单引号。
$id = str_replace("'","''",$_POST['id']);
$sql = " select * from tb_user wher id='$id' ";
这样就不怕注入了。
------解决方案--------------------

if(!empty($_POST['id'])) {<br />  $id = join(',', array_map('intval', $_POST['id']));<br />}<br />
Nach dem Login kopieren
最好把 $id 换个名字

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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
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)

Heiße Themen

Java-Tutorial
1666
14
PHP-Tutorial
1273
29
C#-Tutorial
1253
24
Beheben Sie den Festplattenfehler der Ereignis-ID 55, 50, 98, 140 in der Ereignisanzeige Beheben Sie den Festplattenfehler der Ereignis-ID 55, 50, 98, 140 in der Ereignisanzeige Mar 19, 2024 am 09:43 AM

Wenn Sie in der Ereignisanzeige von Windows 11/10 die Ereignis-ID 55, 50, 140 oder 98 finden oder auf einen Fehler stoßen, dass die Dateisystemstruktur der Festplatte beschädigt ist und nicht verwendet werden kann, befolgen Sie bitte die nachstehende Anleitung, um das Problem zu beheben. Was bedeutet Ereignis 55, Dateisystemstruktur auf der Festplatte beschädigt und unbrauchbar? Bei Sitzung 55 ist die Dateisystemstruktur auf der Ntfs-Festplatte beschädigt und unbrauchbar. Bitte führen Sie das Dienstprogramm chkMSK auf dem Volume aus. Wenn NTFS keine Daten in das Transaktionsprotokoll schreiben kann, wird ein Fehler mit der Ereignis-ID 55 ausgelöst, der dazu führt, dass NTFS den Vorgang nicht abschließen kann und die Transaktionsdaten nicht schreiben kann. Dieser Fehler tritt normalerweise auf, wenn das Dateisystem beschädigt ist, möglicherweise aufgrund fehlerhafter Sektoren auf der Festplatte oder aufgrund der Unzulänglichkeit des Dateisystems im Festplattensubsystem.

Diese Apple-ID wird im iTunes Store noch nicht verwendet: Fix Diese Apple-ID wird im iTunes Store noch nicht verwendet: Fix Jun 10, 2024 pm 05:42 PM

Wenn Sie sich mit der AppleID beim iTunesStore anmelden, wird möglicherweise die Fehlermeldung „Diese AppleID wurde nicht im iTunesStore verwendet“ auf dem Bildschirm angezeigt. Es gibt keine Fehlermeldungen, über die Sie sich Sorgen machen müssen. Sie können sie beheben, indem Sie diese Lösungssätze befolgen. Fix 1 – Lieferadresse ändern Der Hauptgrund, warum diese Aufforderung im iTunes Store erscheint, ist, dass Sie nicht die richtige Adresse in Ihrem AppleID-Profil haben. Schritt 1 – Öffnen Sie zunächst die iPhone-Einstellungen auf Ihrem iPhone. Schritt 2 – AppleID sollte über allen anderen Einstellungen stehen. Also, öffnen Sie es. Schritt 3 – Öffnen Sie dort die Option „Zahlung & Versand“. Schritt 4 – Bestätigen Sie Ihren Zugang mit Face ID. Schritt

Was ist der Unterschied zwischen HQL und SQL im Hibernate-Framework? Was ist der Unterschied zwischen HQL und SQL im Hibernate-Framework? Apr 17, 2024 pm 02:57 PM

HQL und SQL werden im Hibernate-Framework verglichen: HQL (1. Objektorientierte Syntax, 2. Datenbankunabhängige Abfragen, 3. Typsicherheit), während SQL die Datenbank direkt betreibt (1. Datenbankunabhängige Standards, 2. Komplexe ausführbare Datei). Abfragen und Datenmanipulation).

Verwendung der Divisionsoperation in Oracle SQL Verwendung der Divisionsoperation in Oracle SQL Mar 10, 2024 pm 03:06 PM

„Verwendung der Divisionsoperation in OracleSQL“ In OracleSQL ist die Divisionsoperation eine der häufigsten mathematischen Operationen. Während der Datenabfrage und -verarbeitung können uns Divisionsoperationen dabei helfen, das Verhältnis zwischen Feldern zu berechnen oder die logische Beziehung zwischen bestimmten Werten abzuleiten. In diesem Artikel wird die Verwendung der Divisionsoperation in OracleSQL vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Zwei Arten von Divisionsoperationen in OracleSQL In OracleSQL können Divisionsoperationen auf zwei verschiedene Arten durchgeführt werden.

Vergleich und Unterschiede der SQL-Syntax zwischen Oracle und DB2 Vergleich und Unterschiede der SQL-Syntax zwischen Oracle und DB2 Mar 11, 2024 pm 12:09 PM

Oracle und DB2 sind zwei häufig verwendete relationale Datenbankverwaltungssysteme, die jeweils über ihre eigene, einzigartige SQL-Syntax und -Eigenschaften verfügen. In diesem Artikel werden die SQL-Syntax von Oracle und DB2 verglichen und unterschieden und spezifische Codebeispiele bereitgestellt. Datenbankverbindung Verwenden Sie in Oracle die folgende Anweisung, um eine Verbindung zur Datenbank herzustellen: CONNECTusername/password@database. In DB2 lautet die Anweisung zum Herstellen einer Verbindung zur Datenbank wie folgt: CONNECTTOdataba

Wo finde ich die Alibaba-ID? Wo finde ich die Alibaba-ID? Mar 08, 2024 pm 09:49 PM

Sobald Sie in der Alibaba-Software erfolgreich ein Konto registriert haben, weist Ihnen das System eine eindeutige ID zu, die als Ihre Identität auf der Plattform dient. Viele Benutzer möchten jedoch ihre ID abfragen, wissen aber nicht, wie das geht. Dann wird Ihnen der Herausgeber dieser Website unten eine detaillierte Einführung in die Strategieschritte geben. Ich hoffe, es kann Ihnen helfen! Wo finde ich die Antwort auf die Alibaba-ID: [Alibaba]-[My]. 1. Öffnen Sie zuerst die Alibaba-Software. Nachdem Sie die Startseite aufgerufen haben, müssen Sie auf [Mein] in der unteren rechten Ecke klicken. 2. Nachdem wir zur „Mein“-Seite gelangt sind, können wir oben auf der Seite [ID] sehen Ist die ID dieselbe wie die Taobao-ID? Alibaba ID und Taobao ID sind unterschiedlich, aber die beiden

Ausführliche Erläuterung der Funktion „Tag festlegen' in den dynamischen SQL-Tags von MyBatis Ausführliche Erläuterung der Funktion „Tag festlegen' in den dynamischen SQL-Tags von MyBatis Feb 26, 2024 pm 07:48 PM

Interpretation der dynamischen SQL-Tags von MyBatis: Detaillierte Erläuterung der Verwendung von Set-Tags. MyBatis ist ein hervorragendes Persistenzschicht-Framework. Es bietet eine Fülle dynamischer SQL-Tags und kann Datenbankoperationsanweisungen flexibel erstellen. Unter anderem wird das Set-Tag zum Generieren der SET-Klausel in der UPDATE-Anweisung verwendet, die sehr häufig bei Aktualisierungsvorgängen verwendet wird. In diesem Artikel wird die Verwendung des Set-Tags in MyBatis ausführlich erläutert und seine Funktionalität anhand spezifischer Codebeispiele demonstriert. Was ist Set-Tag? Set-Tag wird in MyBati verwendet

Was bedeutet das Identitätsattribut in SQL? Was bedeutet das Identitätsattribut in SQL? Feb 19, 2024 am 11:24 AM

Was ist Identität in SQL? In SQL ist Identität ein spezieller Datentyp, der zum Generieren automatisch inkrementierender Zahlen verwendet wird. Er wird häufig verwendet, um jede Datenzeile in einer Tabelle eindeutig zu identifizieren. Die Spalte „Identität“ wird oft in Verbindung mit der Primärschlüsselspalte verwendet, um sicherzustellen, dass jeder Datensatz eine eindeutige Kennung hat. In diesem Artikel wird die Verwendung von Identity detailliert beschrieben und es werden einige praktische Codebeispiele aufgeführt. Die grundlegende Möglichkeit, Identity zu verwenden, besteht darin, Identit beim Erstellen einer Tabelle zu verwenden.

See all articles