Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  3 936
Yoyo.
Enda en gang søker jeg backup
Denne gangen prøver jeg å luke ut filer som ikke er excel.
Det er veldig basic opplegg, men jeg tror jeg har sett meg blind på koden nå. Jeg finner ikke ut hvor shiten failer.
Her er selve formen som laster opp filen:

Kode

<form name="addFile" action="ctrl" method="POST" enctype="multipart/form-data" onSubmit="return Validate(this);">
	<table>
		<tr>
			<td>File: </td>
			<td><input id="upload" type="file" /></td>
			<td><input type="submit" value="Add from file" /></td>
		</tr>
	</table>
</form>
Og her er javascriptet som i teorien skal verifisere at filen som lastes opp er en excel-fil og ikke alt mulig annet rart.

Kode

 
<script>
function Validate(addItemsFromFile){
	var _validFileExtensions = ["xls","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlsx","xlsm","xlsb","xltm","xlam"];
	var input = addItemsFromFile.getElementsByTagName("upload");
	if(input.type == "file"){
		var fileName = input.value;
		if(filename.length > 0){ 
			var valid = false;
			for(var j = 0; j < _validFileExtensions.length; j++){
				var curExtension = _validFileExtensions[j];
				if(fileName.substr(filename.length - curExtension.length, curExtension.length).toLowerCase() == curExtension.toLowerCase()){
					valid = true;
					break;
				}
			}
			if(valid == false){ //if(!valid)
				alert("File not supported. Only excel-files allowed for upload");
				return false;
			}
		}
	}return true;
}
</script>
Jeg er ganske sikker på at det ikke er så veldig langt unna, det kan være såpass basic som at en "true" står på fil sted for alt jeg vet.

Forresten:
Det er ikke form-name'et som er feil, det er rettet opp.
Noe slik burde funke http://pastebin.com/LdKHvZ9h

ps. husk å validere server-side også
OT:
Håper du også validerer server-side, som nevnt over her?
Om dette skal være et script som validerer/sikrer input er ikke javascript veien å gå, da dette enkelt endres av klienten.
#D4AF37
moret's Avatar
Trådstarter
Joda, det validerer serverside også

Det valideres på serverside også, men ikke på denne måten. På serverside leser det bare filen og failer den om den ikke kjenner igjen innholdet; ganske strikt på hva som er lov til å ha med og hvor.
Da dette er en invite only-side uten noen egentlig "farlig" funksjon så det er ikke angrep jeg er ute etter å stoppe; men idiotien for de som ikke ser forskjell på excel og bilder.

Takk for svar Skal teste det ut når jeg kommer hjem i kveld.