Avatar billede jdlindstroem Nybegynder
10. marts 2001 - 20:05 Der er 34 kommentarer og
2 løsninger

Hvordan hackersikres en apache/mySQL/PHP-server???

Hej,

Hvis man ville opbygge en internetbutik, der er så sikker som en bank, omkring en apache/mySQL-løsning,

a. Hvad skal man så gøre for at gøre den 99.9% sikker?

b. Er der noget (gratis?) software som er særlig godt at kombinere med apache/mySQL, f.eks. en bestemt firewall? (Gerne produktnavne)?

c. Hvad er sikrest at bruge som Operativsystem f.eks. Linux eller Windows?

d. Findes der en ekstra sikker udgave af Apache og MySQL, hvor der er lukket ned for f.eks. ftp, således at al kommunikation med brugeren kun kan ske ved \'normal\' download af siderne i HTML?

Grundkrav til serveren:

1. Serveren skal automatisk håndtere betaling vha. kreditkort (visa/mastercard) og varetage tilbagebetaling til kunders konti, hvis de fortryder køb eller der ikke kan leveres alligevel.

2. Serveren skal automatisk håndtere kundernes konti (indsættelse af penge og nedskrivning af konto ved køb)

3. Kunderne skal kunne få adgang til den fra en alm. browser f.eks. Netscape.

Kort sagt der må ikke komme hackere ind der kan pille ved kundeoplysninger,kode, konfiguration m.m.


Avatar billede lojmann Nybegynder
10. marts 2001 - 20:23 #1
Well, det du vil have, er det umulige...
INTET er sikkert på Internettet, INTET... Alt kan lade sig gøre, der er INGEN begrænsning! INGEN!

Men her et par tips, som du kan bruge til at gøre dit system sikkere!

Operativsystem: En Linux/UNIX klon, evt. BSD, da den er mest sikker!
Web-server: Brug Apache, og benyt SSL eller HTTPS frem for HTTP, til at nå siderne fra browseren.
Firewall: Benyt IPCHAINS, det er en gratis firewall til Linux/UNIX, som en nem at sætte op men ret sikker, da man selv skrive hvad den skal og ikke skal. Kan f.eks. sættes op til at være en MOST SECURE firewall...

Mht. håndtering af visa/master/dankort oplysninger, så benyt noget fra et \"godkendt\" firma, og ikke noget \"free creditcard gateway\" - det er dels mere pålideligt for kunden og mere sikkert for dig selv, med noget som koster penge der...

I øvrigt, hvis man vil satse på sikkerhed, skal man ikke tænke i \"free stuff\" baner, min mening!

Håber det hjælper lidt...
Avatar billede jdlindstroem Nybegynder
11. marts 2001 - 00:27 #2
Hej Lojmann,

Rart med et svar. Jeg venter lige lidt med at slippe resten pointene for at se om I er flere som skal dele dem, men mange tak! :) Du siger, at vi ikke skal tænke i freeware.
Hvad er de kommercielle alternativer?

Avatar billede lojmann Nybegynder
11. marts 2001 - 12:27 #3
BSD fås i en gratis version, FreeBSD - den er ok!
IPCHAINS er gratis, Apache er gratis, mySQL er gratis, SSL/HTTPS er gratis, så helt havde jeg jo ikke ret... Disse produkter er kanone, og der er mange andre som bruger dem... BRUG DEM, det er nok de bedste!

Men bare husk på, INTET er sikkert i dag, ALT er muligt...
Avatar billede lindhardt Nybegynder
11. marts 2001 - 12:36 #4
Jeg er bare med på en lytter. Kim
Avatar billede jdlindstroem Nybegynder
11. marts 2001 - 13:27 #5
Hej Lojmann,

Jeg regner med, at du må have tjekket op på det siden at du har ændret mening. Jeg kunne heller ikke ummiddelbart forstå, hvorfor at det ikke skulle være godt nok. Et typisk alternativ ville jo være MicrosoftSQLserver og jeg nægter at tro på, at den ikke også skulle være fuld af huller.

Omvendt så har jeg lige læst, hvordan en hackergruppe gik ind på apache.org og ændrede deres hjemmeside og fik rootaccess på deres apacheserver. Men igen, der er intet der er 100% sikkert, Når selv Pentagon ikke kan holde alle ude.
Avatar billede lojmann Nybegynder
11. marts 2001 - 13:59 #6
Well, man skal også huske på, at oftest er det menniskelige fejl, som er afgørene for om en hacker kan komme ind... Der er MANGE som ikke opdatere deres servere, med de patches som der kommer osv...
Avatar billede theportal Nybegynder
11. marts 2001 - 17:26 #7
Jeg ville absolut ikke vælge et produkt som mySQL til et seriøst projekt på *NIX platform! Det minder mig om at bruge access til et stort projekt på en Ms Platform...FØJ! Til linux er jeg blevet anbefalet PostGreSQL eller Oracle (nok lidt mere Unix, men hvad fanden) og til MS er der kun en god database server, og det er den svinedyre, men hurtige db Ms SQLServer 2000
Avatar billede lojmann Nybegynder
11. marts 2001 - 17:30 #8
theportal -> Hvad er der gal med mySQL på Linux/UNUX platformen?
Avatar billede theportal Nybegynder
11. marts 2001 - 18:06 #9
en af grundene: Stored Procedures understøttes ikke i MySQL
Avatar billede lojmann Nybegynder
11. marts 2001 - 18:17 #10
Hvad er \"Stored Procedures\"
Avatar billede theportal Nybegynder
11. marts 2001 - 18:22 #11
Stored Procedures
When you create an application with Microsoft® SQL Server™, the Transact-SQL programming language is the primary programming interface between your applications and the SQL Server database. When you use Transact-SQL programs, two methods are available for storing and executing the programs. You can store the programs locally and create applications that send the commands to SQL Server and process the results, or you can store the programs as stored procedures in SQL Server and create applications that execute the stored procedures and process the results.

Stored procedures in SQL Server are similar to procedures in other programming languages in that they can:

Accept input parameters and return multiple values in the form of output parameters to the calling procedure or batch.
Contain programming statements that perform operations in the database, including calling other procedures.
Return a status value to a calling procedure or batch to indicate success or failure (and the reason for failure).
You can use the Transact-SQL EXECUTE statement to run a stored procedure. Stored procedures are different from functions in that they do not return values in place of their names and they cannot be used directly in an expression.

The benefits of using stored procedures in SQL Server rather than Transact-SQL programs stored locally on client computers are:

They allow modular programming.
You can create the procedure once, store it in the database, and call it any number of times in your program. Stored procedures can be created by a person who specializes in database programming, and they can be modified independently of the program source code.

They allow faster execution.
If the operation requires a large amount of Transact-SQL code or is performed repetitively, stored procedures can be faster than batches of Transact-SQL code. They are parsed and optimized when they are created, and an in-memory version of the procedure can be used after the procedure is executed the first time. Transact-SQL statements repeatedly sent from the client each time they run are compiled and optimized every time they are executed by SQL Server.

They can reduce network traffic.
An operation requiring hundreds of lines of Transact-SQL code can be performed through a single statement that executes the code in a procedure, rather than by sending hundreds of lines of code over the network.

They can be used as a security mechanism.
Users can be granted permission to execute a stored procedure even if they do not have permission to execute the procedure’s statements directly.

A SQL Server stored procedure is created with the Transact-SQL CREATE PROCEDURE statement and can be modified with the ALTER PROCEDURE statement. The stored procedure definition contains two primary components: the specification of the procedure name and its parameters, and the body of the procedure, which contains Transact-SQL statements that perform the procedure’s operations.

(c) 1988-98 Microsoft Corporation. All Rights Reserved.
Avatar billede lojmann Nybegynder
11. marts 2001 - 18:29 #12
kewl...
Avatar billede theportal Nybegynder
11. marts 2001 - 18:31 #13
jep!
Avatar billede jdlindstroem Nybegynder
12. marts 2001 - 06:00 #14
Hej Portal! Tak fordi du blander dig i diskussionen. Dit svar forstår jeg som, kort udtrykt: MS-SQL-serveren er bedre fordi at den understøtter stored procedures (SP). Hvad er forskellen på SP og funktioner i mySQL?

Se evt. http://webcafe.dk/php/artikler/204/phpa204.php3, hvor de viser, hvordan man kan genbruge kode i mySQL.

Såvidt jeg kan se ud fra dine oplysninger så er den største fordel, at koden bliver compilet on-the-fly på MS-SQL. Hvilket er rigtig fedt.

Da mySQL er gratis og MS-SQL hamrende dyr, så kan jeg forestille mig at det er billigere at bruge \'mange\' penge på en hurtig PC med mySQL end at købe MS-SQL (alle penge på hardware og ingen på software) og så køre det på en langsommere pc (mange penge på software&få på hardware).

Gad vide om det ikke giver en bedre performance pr. krone?

Avatar billede jdlindstroem Nybegynder
12. marts 2001 - 06:10 #15
Jeg har set lidt på PostGreSQL, da softwaren SKAL være gratis (Ingen penge har jeg nok af). Oracle og MS-SQL er helt udelukket af samme grund. Det som jeg spekulerer mest over er, om den er ligeså nem at integrere med PHP?

Link til PostGreeSQ til evt. interesserede:
http://navigation.helper.realnames.com/framer/1/1/default.asp?realname=PostgreSQL&url=http%3A%2F%2Fwww%2Epostgresql%2Eorg&frameid=1&providerid=1&uid=17562691
Avatar billede jdlindstroem Nybegynder
12. marts 2001 - 06:12 #16
Jeg har ikke glemt at uddele point, siger det lige en gang til (sidste gang), men andre skal have mulighed for også at komme med indlæg, inden at vi lukker.
Avatar billede lojmann Nybegynder
12. marts 2001 - 08:45 #17
Well, jeg vil mene at mySQL er langt bedre en MS SQL, men det er nok et spg. om IT-religion :)
Avatar billede jdlindstroem Nybegynder
12. marts 2001 - 09:11 #18
Hej Lojman. Jeg deler din religion *G*, men kan ikke vurdere om mySQL teknisk set er MS-SQL underlegen.

Der er forresten en ting jeg ikke helt forstår. Hvis jeg har en Apache/MysQL/PHP løsning kørende og der er X, f.eks. 100 brugere, der er connected til serveren på samme tid. Sætter serveren dem så i en form for LILO-kø altså betjener dem efter den rækkefølge som deres requests er kommet ind i?
Avatar billede lojmann Nybegynder
12. marts 2001 - 10:57 #19
LILO-kø? Linux Loader-kø? Hvad mener du? Serveren bootes jo ikke hver gang der er nogle som spørger efter den?!?!?

Men du har jo et hvis antal connections, i apache, klar til at tage imod nye \"kunder\" på sitet... hvis det er det du mener! Det kan man selv sætte op, hvis det antal som er default ikke er nok!
Avatar billede jdlindstroem Nybegynder
12. marts 2001 - 12:05 #20
Hej!

LILO=Last in last out. Med andre ord en kø ligesom i supermarkedet. Den kunde/bruger som vil betjenes på vente på det bliver dennes tur til at blive betjent af kassemanden/serveren (Øj, hvor pædagogisk *G*)

Hvis 100 brugere på ca. samme tid connecter til serveren. Bliver de så sat i en kø og betjent en af gangen eller kan der køre flere processer på samme tid? Det sidste giver mulighed for at en proces vil forsøge at f.eks.  skrive til en record, mens en anden proces prøver at læse fra denne på nøjagtig samme tid.

Jeg vil gerne vide dette, så jeg ved om der kan opstå samtidighedsproblemer.



Avatar billede lojmann Nybegynder
12. marts 2001 - 13:23 #21
Ohh, lige som FIFO :) (DOH!)

Kan sq ikke huske det, men tjek noget dokumentation på http://www.apache.org
Avatar billede jdlindstroem Nybegynder
12. marts 2001 - 15:25 #22
Nemlig, var lige ved at skrive om FIFO i svaret  til dig, meeeen regnede med at du jo nok kendte begrebet ;)
Avatar billede lojmann Nybegynder
12. marts 2001 - 15:37 #23
Hæ hæ, jeg er totalt død i dag... den køre ikke så¨hurtig øverst oppe... (og der er kun 20 min til jeg skal holde \"fordrag\" om dVPN!!!)
Avatar billede jdlindstroem Nybegynder
12. marts 2001 - 15:41 #24
Damn trykkede på udfør for hurtigt! Ja, det er FIFO, jeg mener. LILO er vist mit eget begreb og et eksempel på anvendt omvendt logik ;)
Avatar billede theportal Nybegynder
12. marts 2001 - 19:05 #25
Tjaa, min religion er MS,

Hvis man tjekker på TPC (tpc.org tror jeg nok, der hvor DB Servere bliver testet) - Ser man ingen MySQL da den simpelthen ikke lever op til kravene, men man ser MsSQL på en klar Førsteplads - Så underlegen er MSSQL næppe!
Avatar billede lojmann Nybegynder
13. marts 2001 - 09:28 #26
Tja, hvad kan jeg sige... Se under \"Who We Are\", MS er med, så DERFOR kan jeg ikke have tiltro til noget af det de skriver på sitet. Hvis sådan nogle test skal kunne tages seriøse, så SKAL de komme fra nogle uafhænige nogle, ellers kan det være snyd. Ligesom det har været med W2K Vs. Linux og tidligere MSSQL Vs, mySQL...
Avatar billede theportal Nybegynder
13. marts 2001 - 15:18 #27
Tjaa, i Linux folk tror altid at de tests hvor linux/unix får smæk er fixed!
Avatar billede lojmann Nybegynder
13. marts 2001 - 16:00 #28
NEJ! Men dem som direkte er sponsoreret af MS, kan man da ikke have tiltro til - det er LOGISK!
Det samme vil være hvis RedHat testede RedHat Vs W2K, så ville den, i mine øjne, heller ikke holde en meter!
Avatar billede jdlindstroem Nybegynder
13. marts 2001 - 16:47 #29
Må give Lojman ret. Dem som står bag tpc.org er kun kommercielle firmaer endda af de dyre af slagsen (MS, IBM, ORACLE, SUN m.m.). Hvem tror på at disse firmaer vil konstruere en test som udpeger en GRATIS konkurrent som ikke bare billigere, men også bedre? Det ville være det rene selvmord. Gad vide, hvad tpc har \'glemt\' at teste på? Hvad med performance pr. krone? Eller hvad, hvis man nu f.eks. anvender pengene der skal bruges til software på hurtigere hardware i stedet og dermed måske får mySQL til at performe bedre end ms-sql for det samme budget?
Avatar billede theportal Nybegynder
13. marts 2001 - 19:57 #30
Grunden til at MySQL ikke er med i tpc testen, er at den ikke lever op til de krav der stilles til en database, for at den kan deltage i testen!
Avatar billede lojmann Nybegynder
13. marts 2001 - 20:09 #31
Jamen, så er det jo nemt at vinde ALT jo!

\"Vi skal nu kåre de fedeste database-servere/sprog. Her er kragene for at i kan være med:

1) I skal være fra MS, IBM, ORACLE eller SUN.
2) Det må ikke være gratis!

Hvis jeres database server opfylder dinne krag, send en mail til: testafdatabaseservere@microsoft.dk \"... Så er det jo klart nok!

Sådan test holder ikke! Man bør også tage nogle flere perspektiver med, som jdlindstroem skriver!
Avatar billede jdlindstroem Nybegynder
14. marts 2001 - 06:52 #32
Hej Portal, Jeg var inde på tpc.org. Kan du give en præcis reference/link/citat, hvor det angives, hvorfor mySQL/PostGreSQL ikke opfylder betingelserne for at være en database? Eller bare, hvor kravene til deltagende databaser står? Såvidt jeg kan se, så sammenlignes der kun hardware/databaser fra virksomheder som betaler 9500$ til tpc årligt for at de skal benchmarke deres og KUN deres produkter. Mon årsagen ikke snarere skyldes at mySQL og andre gratis produkter ikke betaler for en test og derfor ikke er med?
Avatar billede jdlindstroem Nybegynder
14. marts 2001 - 06:54 #33
Og så selvfølgelig at de andre producenter ikke har lyst til at tage dem med. For selv om mySQL kun performede middelmådigt, så ville de 1. Blive blåstemplet fordi de sammenlignes med \'det fine selskab\' og 2. Score en god bid af markedet, fordi ingen andre kan give samme gode pengeøkonomi.
Avatar billede theportal Nybegynder
14. marts 2001 - 14:15 #34
Jeg har fået atvide af en fra 2600.dk, som er rimelig hardcore til Linux, at grunden til at MySQL ikke var med er fordi de ikke understøtter Stored Procedures, hvorfor PostGreSQL ikke er med ved jeg ikke, for den understøtter Stored Procedures!

Jeg vil prøve at finde de ting databasen skal understøtte for at komme med!
Avatar billede jdlindstroem Nybegynder
14. marts 2001 - 14:42 #35
Hej Portal! Fedt at du gider undersøge det. Jeg synes det er ret interessant. Glæder mig til at se resultatet.
Avatar billede theportal Nybegynder
14. marts 2001 - 18:49 #36
Jeg har ikke lige kunne finde det på siden, den er fandme uoverskuelig, så jeg kontakter lige TPC og MySQL for at opklare vores lille mysterium!

/The Portal
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester